Docker私有倉庫搭建

作者:xcbeyond
瘋狂源自夢想,技術成就輝煌!微信公眾號:《程序猿技術大咖》號主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗,樂于技術輸出、分享,現(xiàn)階段從事微服務架構項目的研發(fā)工作,涉及架構設計、技術選型、業(yè)務研發(fā)等工作。對于Java、微服務、數(shù)據(jù)庫、Docker有深入了解,并有大量的調優(yōu)經(jīng)驗。

0.前言

     在實際Docker使用場景下,尤其是在企業(yè)內部,一般生產(chǎn)環(huán)境是不允許直接訪問外網(wǎng),這將導致從公共docker倉庫下載鏡像變的不可行,因此就需要搭建私有倉庫供生產(chǎn)環(huán)境使用。
1.安裝Docker Registry
(1)下載registry鏡像

docker pull registry

(2)下載完后,啟動容器

    [docker@docker registry]$ docker run -d --name registry -p 5000:5000 -v /home/docker/registry:/var/lib/registry/docker/registry registry
    b625c9b49a3509171fb6ee3f148a8136ba545e010b70bc4581ecb038a5684767

      默認情況下,會將倉庫存放于容器內的/var/lib/registry/docker/registry目錄下,這樣如果容器被刪除,則存放于容器中的鏡像也會丟失,所以一般情況下會指定本地一個目錄掛載到容器內的/var/lib/registry/docker/registry下,此例中是掛載在宿主機的/home/docker/registry目錄下。

    如果不清楚registry容器中存放倉庫的目錄,可以先不用掛載直接啟動容器,然后登陸到容器內部,進行查看便知道了,然后在重新啟動掛載即可。

2.測試

為了驗證私有倉庫是否搭建成功,則進行簡單的測試。

(將本地鏡像push至剛剛搭建的私有倉庫中。)

標記本地鏡像redis:

[docker@docker registry]$ docker tag redis 127.0.0.1:5000/redis

      

    docker tag : 標記本地鏡像,將其歸入某一倉庫。
    語法:
        docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

將剛剛tag的redis鏡像push到私有倉庫

    [docker@docker registry]$ docker push 127.0.0.1:5000/redis
    The push refers to a repository [127.0.0.1:5000/redis]
    39deb50f8429: Pushed
    7c04eaab6a33: Pushed
    0c776a3ed246: Pushed
    54db18bc71cc: Pushed
    765d87ec3358: Pushed
    cdb3f9544e4c: Pushed
    latest: digest: sha256:30eff1a6c2bea8082342f7e5cd5ad6aeb1a087fd22bd3d9be338613c56ed4d65 size: 1571

則此時已成功將本地鏡像上傳到私有倉庫。