• Docker从入门到精通——daemon.json解决和启动脚本之间的冲突


    daemon.json解决和启动脚本之间的冲突

    一、daemon.json解决和启动脚本之间的冲突

      如果您使用 daemon.json 文件,也手动或使用启动脚本将选项传递给 dockerd 命令,并且这些选项发生冲突,则 Docker 无法启动并出现以下错误:

    unable to configure the Docker daemon with file /etc/docker/daemon.json:
    the following directives are specified both as a flag and in the configuration
    file: hosts: (from flag: [unix:///var/run/docker.sock], from file: [tcp://127.0.0.1:2376])

      如果您看到与此类似的错误并且您正在使用标志手动启动守护程序,您可能需要调整您的 flags 或 daemon.json 以消除冲突。

    注意:如果您看到此特定错误,请继续 下一部分以获取解决方法。

    如果您使用操作系统的初始化脚本启动 Docker,您可能需要以特定于操作系统的方式覆盖这些脚本中的默认值。

    二、将 daemon.json 中的 hosts 键与 systemd 一起使用

      难以解决的配置冲突的一个显着示例是当您想要指定与默认值不同的守护程序地址时。Docker 默认监听一个套接字。在 Debian 和 Ubuntu 系统上使用systemd,这意味着 -H 在启动时总是使用主机标志 dockerd。如果您在 中指定 hosts条目daemon.json,则会导致配置冲突(如上述消息中所示)并且 Docker 无法启动。

      要解决此问题,请创建一个 /etc/systemd/system/docker.service.d/docker.conf 包含以下内容的新文件,以删除 -H 默认启动守护程序时使用的参数。

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd

      有时您可能需要 systemd 使用 Docker 进行配置,例如 配置 HTTP 或 HTTPS 代理

    注意:如果您覆盖此选项,然后在手动启动 Docker 时未指定hosts条目daemon.json 或-H标志,则 Docker 无法启动。

     sudo systemctl daemon-reload 在尝试启动 Docker 之前运行。如果 Docker 成功启动,它现在正在侦听 hostskey 中 指定的 IP 地址,daemon.json 而不是套接字。

    重要提示:Docker Desktop for Windows 或 Docker Desktop for Mac 不支持设置 hostsdaemon.json

     
  • 相关阅读:
    Lua多条件排序
    python_request 使用jsonpath取值结果,进行接口关联
    python_xlutils : python利用xlutils修改表格内容
    python_reques接口测试框架,Excel作为案例数据源
    正则表达式re模块的基础及简单应用
    linux下Rtree的安装
    du和df不一致的解决方法
    windows 版Tomcat 7.0的配置
    linux下搭建svn服务器
    【leetcode】1. Two Sums
  • 原文地址:https://www.cnblogs.com/zuoyang/p/16356001.html
Copyright © 2020-2023  润新知