环境:
操作步骤:
我更改了/etc/default/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.crtps输出没有显示任何关于DOCKER_OPTS环境var的信息。
$ ps auxwww|grep docker
root 6919 0.0 0.1 331076 19984 ? Ssl 10:14 0:00 /usr/bin/docker -d -H fd://问题:
根据docker文档,使用私有注册表的方式是通过DOCKER_OPTS in /etc/default/docker。为什么在这样做之后,它在这个环境中就不起作用了?
备注:
发布于 2015-05-13 15:42:11
推荐方式码头商17.xx +
有许多方法可以为Docker守护进程配置守护进程标志和环境变量。推荐方式将使用与平台无关的daemon.json文件,默认情况下它位于Linux上的/etc/docker/中。
因此,对于配置不安全的注册中心,请执行以下操作:
/etc/docker/daemon.json文件中设置以下标志:
{“不安全-注册表”:“mydocker-注册表:5000”}每一次都容易!
以前建议使用Docker 1.12的方法
根据码头文件,为您的Docker守护进程配置守护进程标志和环境变量的推荐方法是使用systemd插入文件。
因此,对于这一具体情况,请执行以下操作:
/etc/systemd/system/docker.service.d/private-registry.conf的文件,其内容如下:
如果不存在,则创建目录/etc/systemd/system/docker.service.dService ExecStart= ExecStart=/usr/bin/dockerd -不安全-注册表mydocker-注册表:5000
瞧!
不推荐的方式
编辑文件/lib/systemd/system/docker.service
...
[Service]
ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS
...
EnvironmentFile=-/etc/default/docker
...然后执行
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 就这样。
发布于 2016-06-02 10:33:40
在Ubuntu 16.04中,使用docker 1.12.x似乎发生了变化。基于更新的文档
将DOCKER_OPTS="-g /mnt/somewhere/else/docker/ --storage-driver=overlay2"添加到/etc/default/docker
编辑文件/lib/systemd/system/docker.service
...
[Service]
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
...
EnvironmentFile=-/etc/default/docker
...然后执行:
sudo systemctl daemon-reload
sudo systemctl restart docker发布于 2015-10-14 09:53:04
基于Systemd的系统不读取/etc/默认配置,现在必须将这些配置放在/etc/systemd中,请参见docker 码头错误#12926
现在在Docker站点上有一个正式的文档,请参阅用systemd控制和配置Docker。
您不应该直接黑入服务文件以进行配置。
在基于Arch和Debian的系统上进行了测试和工作--我必须包括忽略任何过时的EnvironmentFile指令的选项(参见链接Docker引用,但我一开始没有发现它,并认为它不需要):
-EnvironmentFile=/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker daemon ...https://stackoverflow.com/questions/30127580
复制相似问题