构建私人docker仓库
背景
在工作中,我们不可能把企业项目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-demo0.0.3:latest
例如
docker pull localhost:5000/