环境:
>操作系统:debian 8.0.0-amd64,ubuntu-15.04,16.04
Docker:1.x.x
程序:
我更改了/ etc / default / docker来添加一个专用的docker注册表,然后重新启动docker服务,最后尝试拉一些图像。
$ cat /etc/default/docker DOCKER_OPTS="--insecure-registry mydocker-registry.net:5000" $ service docker restart $ docker pull mydocker-registry.net:5000/testdb FATA[0000] Error: v1 ping attempt Failed with error: Get https://mydocker- registry.net:5000/v1/_ping: dial tcp: lookup mydocker-registry.net: no such host. If this private registry supports only HTTP or HTTPS with an unknown CA certificate,please add `--insecure-registry mydocker- registry.net: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/mydocker- registry.net:5000/ca.crt
$ ps auxwww|grep docker root 6919 0.0 0.1 331076 19984 ? Ssl 10:14 0:00 /usr/bin/docker -d -H fd://
题:
根据docker文档,使用私有注册表的方法是通过/ etc / default / docker中的DOCKER_OPTS。为什么在这样做之后呢在这个环境下没有生效?
笔记:
>私有注册表主机名由DNS正确解析。
推荐方式
根据docker documentation,为Docker守护程序配置守护程序标志和环境变量的推荐方法是使用systemd的入库文件。
因此,对于具体情况,请执行以下操作:
>使用以下内容创建一个名为/etc/systemd/system/docker.service.d/private-registry.conf的文件:
If not exists,create directory
/etc/systemd/system/docker.service.d
[Service] ExecStart= ExecStart=/usr/bin/dockerd --insecure-registry mydocker-registry.net:5000
>刷新更改:
$ sudo systemctl daemon-reload
>重启Docker:
$ sudo systemctl restart docker
瞧!
不推荐的方式
编辑文件/lib/systemd/system/docker.service
... [Service] ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS ... EnvironmentFile=-/etc/default/docker ...
然@R_404_424@
systemctl daemon-reload systemctl restart docker
验证/ etc / default / docker是否已加载
ps auxwww | grep docker root 4989 0.8 0.1 265540 16608 ? Ssl 10:37 0:00 /usr/bin/docker -d -H fd:// --insecure-registry
而已。