`
yang_ch
  • 浏览: 80530 次
社区版块
存档分类
最新评论

Docker私有仓库建立(CentOS7)

 
阅读更多

建立docker私有仓库时,经历的一些坑,做个记录,希望后来者少走弯路

环境:CentOS7、docker(1.6.2)

 

安装:

    网上安装的教程很多,基本都很简单,yum install docker 基本就可以了,某些 版本操作系统启动时可能会报一个包的错误,具体什么错忘了,解决方法就是升级包yum upgrade device-mapper-libs。

 

安装私有仓库

 

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

 这里基本也都没问题

 

 

然后下载一个小镜像测试下

 

docker pull busybox

 

 

下载成功后,重新打个tag

 

 

docker tag docker.io/busybox 172.16.40.228:5000/busybox

 

 

 

然后push到私有仓库中

 

 

docker push 172.16.40.228:5000/busybox

 

 

这里开始出问题了,第一个问题,https证书问题,错误如下:

 

Error: Invalid registry endpoint https://172.16.40.228:5000/v1/: Get https://172.16.40.228:5000/v1/_ping: dial tcp 172.16.40.228:5000: connection refused. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.112.136:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/172.16.40.228:5000/ca.crt 

 解决方式

 

    修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加)

OPTIONS='--insecure-registry 172.16.40.228:5000'

 

这样就解决了第一个问题,在此push的时候出了第二个问题,直接500错误

 



 

然后通过  docker logs $id得到错误信息如下



 
 很明显,目录没有权限,不过遇到了第二个非常蛋疼的问题,chmod 777了还不行,再度娘,终于找到,中原因是CentOS7中的安全模块selinux把权限禁掉了,解决方法给容器加特权:

docker run -d -p 5000:5000 --privileged=true -v /opt/data/registry:/tmp/registry registry

 

这样完了之后还是500错误,我就开始怀疑人生了,没办法,继续docker logs $id ,发现错误换了

 



 
 主键重复,这下想起来,刚才肯定docker的事务没回滚,主键已经被占用,换个tag,再次push,已经好了如图:

 



 

 

OK大功告成,下面两篇参考文章:

 

http://blog.csdn.net/wangtaoking1/article/details/44180901   解决证书问题。

http://www.linuxidc.com/Linux/2015-03/115124.htm   解决权限问题。

 

 

  • 大小: 8.9 KB
  • 大小: 1.8 KB
  • 大小: 2.6 KB
  • 大小: 9.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics