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

问题

从docker1.3.2版本开始默认docker registry使用的是https,当你用docker pull 非https的docker regsitry的时候会报下面错误:docker

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,再重启就能够了。socket

Ubuntu 15.04及之后解决办法

若是使用的是Ubuntu15.04之后的版本,修改Docker的服务启动文件便可。工具

解决方案:ui

vi /lib/systemd/system/docker.service

内容修改以下:this

[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.javashuo.com/article/p-khquqrqg-hq.html.net

相关文章
相关标签/搜索