Docker私有仓库搭建
作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。
0.前言
在实际Docker使用场景下,尤其是在企业内部,一般生产环境是不允许直接访问外网,这将导致从公共docker仓库下载镜像变的不可行,因此就需要搭建私有仓库供生产环境使用。
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
则此时已成功将本地镜像上传到私有仓库。