背景
在工作中,我們不可能把企業項目push到公有倉庫進行管理。所以為了更好的管理鏡像,Docker不僅提供了一個中央倉庫,同時也允許我們搭建本地私有倉庫。這一篇介紹registry這種較為方便的私有倉庫搭建。
搭建過程
1. 搭建
Docker 官方提供了一個搭建私有倉庫的鏡像 registry ,只需把鏡像下載下來,運行容器並暴露5000端口,就可以使用了。
docker pull registry:2 docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2
Registry服務默認會將上傳的鏡像保存在容器的/var/lib/registry,我們將主機的/opt/registry目錄掛載到該目錄,即可實現將鏡像保存到主機的/opt/registry目錄了。
瀏覽器訪問http://服務器主機ip:5000/v2,出現下面情況說明registry運行正常。

2. 驗證
現在通過push鏡像到registry來驗證一下。
查看本地鏡像:
lipeiguang@lipeiguang:/$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-demo0.0.3 latest 3d5d469183c0 4 hours ago 660MB docker-demo0.0.2 latest f086ec3ca868 4 hours ago 660MB docker-demo0.0.1 latest f3bf80aa76c2 20 hours ago 660MB registry 2 2d4f4b5309b1 3 months ago 26.2MB hello-world latest bf756fb1ae65 9 months ago 13.3kB java 8 d23bdf5b1b1b 3 years ago 643MB
要通過docker tag將該鏡像標志為要推送到私有倉庫:
docker tag docker-demo0.0.3:latest localhost:5000/docker-demo0.0.3:latest
通過 docker push 命令將 nginx 鏡像 push到私有倉庫中:
docker push localhost:5000/docker-demo0.0.3:latest
訪問 http://主機ip:5000/v2/_catalog 查看私有倉庫目錄,可以看到剛上傳的鏡像了:

下載私有倉庫的鏡像,使用如下命令:
docker pull localhost:5000/鏡像名:版本號 例如 docker pull localhost:5000/docker-demo0.0.3:latest
