prollerweg 发表于 2019-2-21 07:53:14

搭建私有Docker仓库

  道理很简单,我们在使用Docker的时候,经常需要使用到docker pull命令从docker hub拉取我们需要的镜像,进行操作。这样其实有利也有弊,docker hub是官方维护的公用仓库,也是最大、最全的docker镜像仓库。每个人有一个docker hub的账号即可将自己的上传到docker hub上,方便随时拉取使用。但是docker hub有个弊端就是受网络带宽影响,有时候下载速度稍微有些不好。docker官方呢,在docker hub上提供了一个registry镜像,我们使用这个镜像就可以搭建一个私有的注册服务器。我们可以通过把常用的镜像都放到私有的registry上,这样就避免了经常去docker hub上拉取的操作,效率可以得到一定的提高。当然实际工作,我们不一定需要,因为docker hub可以提供我们大部分的需求。
http://s1.运维网.com/images/20180812/1534056835991042.png
  环境:docker001上搭建registry、docker002当做测试客户端。
  使用docker001搭建registry
docker pull registry#拉取registry镜像
docker run -d -p 5000:5000 --restart=always -v /opt/registry:/var/lib/registry registry
#启动一个registry容器,-d守护态运行、
-p将docker的5000断开和registry的5000端口进行映射、
自启动、
指定registry的/var/lib/registry/目录映射docker001的/opt/registry/目录(相当于挂载)firewall-cmd --add-port=5000/tcp --permanent#开放docker001的5000端口
firewall-cmd --reloadhttp://s1.运维网.com/images/20180819/1534614741678931.png
  下图是验证方法
http://s1.运维网.com/images/20180819/1534614942904199.png
  在启动registry时我们加了参数-v /opt/registry:/var/lib/registry,这里就是下面要验证的地方。
  docker002上测试
  dockers registry V2 版本客户端默认使用https协议去push镜像到仓库服务
器,而现在我们的仓库服务器只配置了支持http,所以客户端会push镜像失败。如要希望docker客户端支持http协议,需在启动docker时加入参数--insecure-registry
your_registry_ip:port 。直接编辑/usr/lib/systemd/system/docker.service文件修改即可,如下。
http://s1.运维网.com/images/20180819/1534615262921713.png
  然后重新加载daemon、重启docker。
systemctl daemon-reload
systemctl restart docker.service  首先先打上标签,否则docker会默认将镜像上传到docker hub上。
http://s1.运维网.com/images/20180819/1534616303886635.png

执行push命令将docker002本地的镜像上传到docker001上的registry。
http://s1.运维网.com/images/20180819/1534616460394554.png
  回到docker001,我们进入到/opt/registry,查看是否成功上传(目录层级很多,一层一层往下找就可以看到了)
http://s1.运维网.com/images/20180819/1534616594974525.png
  既然能上传,那么相应的,拉取操作也应当可以。
  首先我在registry上传了一个镜像registry:001
http://s1.运维网.com/images/20180819/1534617446604724.png
  在docker002上
  使用pull命令拉取镜像

  http://s1.运维网.com/images/20180819/1534617524454547.png
  这样我们搭建私有registry的工作就完成,在企业内部搭建一个私有的registry,这样各部门员工使用镜像就方便多了。也有利于公司数据、研发成果的保密。



页: [1]
查看完整版本: 搭建私有Docker仓库