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

相關文章
相關標籤/搜索