当前位置: 首页 > 面试题库 >

Docker守护程序标志被忽略

鞠泰平
2023-03-14
问题内容
  • 操作系统 :debian 8.0.0-amd64,ubuntu-15.04,16.04
  • 码头工人 :1.xx

程序:

我更改/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输出显示一无所知DOCKER_OPTS环境变种。

$ 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进行/etc/default/docker。为什么这样做之后在这种环境下不生效?

笔记:

  • DNS可以正确解析专用注册表主机名。

问题答案:

推荐方式Docker 17.xx +

有多种方法可以为Docker守护程序配置守护程序标志和环境变量。该建议的方法是使用独立于平台的daemon.json文件,该文件位于/etc/docker/默认情况下,在Linux上。

因此,要配置不安全的注册表,请执行以下操作:

  1. /etc/docker/daemon.json文件中设置以下标志:

    {
    "insecure-registries": ["mydocker-registry.net:5000"]
    

    }

  2. 重新启动Docker

     $ sudo systemctl restart docker
    

每次更轻松!

以前推荐的Docker 1.12方式

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

因此,对于这种特定情况,请执行以下操作:

  1. 创建一个/etc/systemd/system/docker.service.d/private-registry.conf具有以下内容的文件:

如果不存在,请创建目录 /etc/systemd/system/docker.service.d

    [Service]
ExecStart=
ExecStart=/usr/bin/dockerd --insecure-registry mydocker-registry.net:5000
  1. 刷新更改:

    $ sudo systemctl daemon-reload
    
  2. 重新启动Docker:

     $ sudo systemctl restart docker
    

瞧!

不推荐的方式

编辑档案 /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

而已。



 类似资料:
  • 这类似于Docker守护程序日志在哪里?。但更多适用于Mac Docker Desktop。 在哪里可以找到Docker Desktop for Mac的守护程序日志?

  • 我刚开始使用docker,但出现了一个错误。我在macOS上使用Pycharm。在我的项目中,我克隆了一个包含dockerfile的github repo(这是来自sklearn的简单LogisticRetression)。我以为我需要的是 但我发现了一个错误 我应该在哪里运行Docker守护程序?谢谢你的帮助!

  • 问题内容: 我正在做Java试卷,并且遇到了以下使我感到困惑的问题。 以下哪项是正确的?(选择所有适用项。) 答:当应用程序开始运行时,会有一个守护线程,其任务是执行main()。 B.当一个应用程序开始运行时,有一个非守护进程线程,其工作是执行main()。 C.由守护程序线程创建的线程最初也是守护程序线程。 D.由非守护程序线程创建的线程最初也是非守护程序线程。 关键答案是B,C,D,谁能告诉

  • 问题内容: 我已经在ubuntu 14.04上安装了docker,它告诉我安装成功。然后我进入,它返回了 我进入了 我尝试了和,得到了相同的答复: 我不知道为什么它返回了这个,我尝试使用来拉ubuntu 并得到了 请告诉我如何解决此问题,如何拉出并运行docker image。和是一样的吗? 问题答案: 您需要将当前用户添加到组中,如下所示: 另外,您可以使用以下环境变量: 然后重新启动系统。正如

  • 问题内容: 因此,我有一个在Linux系统上运行的守护程序,我想要记录其活动:日志。问题是,完成此任务的“最佳”方法是什么? 我的第一个想法是简单地打开一个文件并将其写入。 用这种方式记录日志有天生的错误吗?有没有更好的方法,例如Linux内置的某些框架? 问题答案: Unix长期以来一直使用一种称为syslog的特殊日志记录框架。输入您的外壳 您将获得C接口的帮助。 一些 例子

  • 本文向大家介绍详解Docker守护进程的配置及日志,包括了详解Docker守护进程的配置及日志的使用技巧和注意事项,需要的朋友参考一下 安装Docker并启动,在Docker所在的服务器上,就一直有一个Docker守护进程dockerd在运行。 默认手工启动Docker守护进程,只需要执行如下命令: 停止上述进程,只需要CTRL+C键盘命令。 1. dockerd的配置文件 如果要使用非默认配置参