红联Linux门户
Linux帮助

Docker私有镜像仓库的访问问题

发布时间:2016-10-18 09:29:28来源:linux网站作者:openthings
问题
从docker1.3.2版本开始默认docker registry使用的是https,当你用docker pull 非https的docker regsitry的时候会报下面错误:
Error: Invalid registry endpoint ... Get ... If this private registry supports only HTTP or HTTPS with an unknown CA certificate, 
please add '--insecure-registry 192.168.1.103: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/192.168.14.1:5001/ca.crt
 
MacOS解决办法
如果使用的是MacOS版的Docker GUI工具,可以进“Preference”里面“Advanced”在“Insecure Registry”里加上192.168.14.1:5001,再重启就可以了。
 
Ubuntu 15.04及以后解决办法
如果使用的是Ubuntu15.04以后的版本,修改Docker的服务启动文件即可。
解决方案:
vi /lib/systemd/system/docker.service
内容修改如下:
[Unit]  
Description=Docker Application Container Engine  
Documentation=http://docs.docker.com  
After=network.target docker.socket  
Requires=docker.socket  
[Service]  
Type=notify  
EnvironmentFile=-/etc/sysconfig/docker  
EnvironmentFile=-/etc/sysconfig/docker-storage  
ExecStart=/usr/bin/docker --insecure-registry 192.168.14.1:5001  -H fd:// $OPTIONS $DOCKER_STORAGE_OPTIONS  
LimitNOFILE=1048576  
LimitNPROC=1048576  
[Install]  
WantedBy=multi-user.target
注意上面的 “ExecStart=” 一行,把自己的registry地址加上即可。
很多攻略里,上面的参数有-d选项,但我在Ubuntu15.04会出错,去掉-d后,就可以了,可能不同版本的差异引起的。
重新启动服务:sudo service docker restart,有可能要求执行:systemctl daemon-reload。如果有问题,重新停掉服务,再启动。
如果是Ubuntu老的版本,该文件不在systemd下,找到相应的文件,按照类似的方法修改即可。
 
Ubuntu 14.04及15.04以前版本解决办法
如果使用的是Ubuntu14.04以后的版本,参考这里:http://www.linuxdiyf.com/linux/19784.html
Docker私有镜像仓库的访问问题
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25143.html