由于Ubuntu14.10的启动方式改为systemd,启动参数文件路径和参数方式都改变,引起registry无法访问,这里的方法可以解决,可以正常访问镜像的registry。
Docker在Ubuntu15.10上搭建registry时出现问题,总是报TLS错。
1、Ubuntu14.04及之前版本的解决方法
然后,网上搜索的解决办法都是:
修改/etc/default/docker文件,加入:
DOCKER_OPTS='--insecure-registry 192.168.14.1:5008'
sudo service docker restart,但是没有任何变化。
然儿,在Ubuntu14.04上可以,但在Ubuntu15.10不行。
怀疑版本问题,一通折腾.......
后来终于查到,github上关于该问题的讨论:https://github.com/docker/docker/issues/17205
2、Ubuntu14.10的Docker启动方式改变了
主要是Ubuntu14.10及之后,docker的启动器改为了systemd,配置文件放到了/lib/systemd/system/docker.service里面,所以再去改/etc/default/docker是没有用处的。
关于systemd的安装说明:https://docs.docker.com/engine/admin/systemd/
但是,按照上面的方法,把DOCKER_OPTS参数加进去,然后:
sudo systemctl daemon-reload
sudo systemctl restart docker
没有任何效果。
3、正确的解决办法(Ubuntu14.10之后版本)
然后将--insecure-registry 192.168.14.1:5008放到ExecStart之后。
这是修改后的/lib/systemd/system/docker.service文件:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
#Modified,origin: ExecStart=/usr/bin/docker daemon -H fd://
ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry 192.168.14.1:5008
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
[Install]
WantedBy=multi-user.target
如下方式,再次重启服务,OK。
sudo systemctl daemon-reload
sudo systemctl restart docker