首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略Docker守护进程标志

忽略Docker守护进程标志
EN

Stack Overflow用户
提问于 2015-05-08 15:31:33
回答 6查看 16.6K关注 0票数 23

环境:

  • OS:Debian8.0.0-amd64 64,ubuntu-15.04,16.04
  • 码头:1.x.x

操作步骤:

我更改了/etc/default/docker以添加一个专用的停靠注册中心,然后重新启动了docker服务,最后尝试提取一些图像。

代码语言:javascript
复制
$ 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输出没有显示任何关于DOCKER_OPTS环境var的信息。

代码语言:javascript
复制
$ 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。为什么在这样做之后,它在这个环境中就不起作用了?

备注:

  • DNS正确解析私有注册表主机名。
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-05-13 15:42:11

推荐方式码头商17.xx +

有许多方法可以为Docker守护进程配置守护进程标志和环境变量。推荐方式将使用与平台无关的daemon.json文件,默认情况下它位于Linux上的/etc/docker/中。

因此,对于配置不安全的注册中心,请执行以下操作:

  1. /etc/docker/daemon.json文件中设置以下标志: {“不安全-注册表”:“mydocker-注册表:5000”}
  2. 重新启动码头 $ sudo systemctl重启码头

每一次都容易!

以前建议使用Docker 1.12的方法

根据码头文件,为您的Docker守护进程配置守护进程标志和环境变量的推荐方法是使用systemd插入文件。

因此,对于这一具体情况,请执行以下操作:

  1. 创建一个名为/etc/systemd/system/docker.service.d/private-registry.conf的文件,其内容如下: 如果不存在,则创建目录/etc/systemd/system/docker.service.d

Service ExecStart= ExecStart=/usr/bin/dockerd -不安全-注册表mydocker-注册表:5000

  1. 刷新更改: $ sudo systemctl守护进程-重新加载
  2. 重新启动码头: $ sudo systemctl重启码头

瞧!

不推荐的方式

编辑文件/lib/systemd/system/docker.service

代码语言:javascript
复制
...
[Service]
ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS
...
EnvironmentFile=-/etc/default/docker
...

然后执行

代码语言:javascript
复制
systemctl daemon-reload
systemctl restart docker

验证/etc/default/docker是否已加载

代码语言:javascript
复制
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 

就这样。

票数 58
EN

Stack Overflow用户

发布于 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

代码语言:javascript
复制
...
[Service]
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
...
EnvironmentFile=-/etc/default/docker
...

然后执行:

代码语言:javascript
复制
sudo systemctl daemon-reload
sudo systemctl restart docker
票数 8
EN

Stack Overflow用户

发布于 2015-10-14 09:53:04

基于Systemd的系统不读取/etc/默认配置,现在必须将这些配置放在/etc/systemd中,请参见docker 码头错误#12926

现在在Docker站点上有一个正式的文档,请参阅用systemd控制和配置Docker

您不应该直接黑入服务文件以进行配置。

在基于Arch和Debian的系统上进行了测试和工作--我必须包括忽略任何过时的EnvironmentFile指令的选项(参见链接Docker引用,但我一开始没有发现它,并认为它不需要):

代码语言:javascript
复制
-EnvironmentFile=/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker daemon ...
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30127580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档