【问题标题】:Docker daemon not start after OS update操作系统更新后 Docker 守护进程未启动
【发布时间】:2021-07-02 19:29:24
【问题描述】:

目前我已经使用 /etc/docker/daemon.json

配置了我的 docker
    "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"],
    "tls": true,
    "tlscacert": "/data/certs/ca.pem",
    "tlscert": "/data/certs/server-cert.pem",
    "tlskey": "/data/certs/server-key.pem",
    "containerd": "/run/containerd/containerd.sock",
    "tlsverify": true
}

/lib/systemd/system/docker.service 在 ubuntu 20.04 服务器上

ExecStart=
ExecStart=/usr/bin/dockerd

问题是每次我更新我的操作系统时,文件 /lib/systemd/system/docker.service 都会被覆盖,并且 docker 无法启动,直到我修改文件 docker.sesrvice再次

为了避免这个问题或者我的配置文件有误,我还需要做些什么吗?

提前致谢

【问题讨论】:

    标签: docker docker-daemon


    【解决方案1】:

    对 systemd 单元进行更改时,切勿修改随软件包一起提供的单元(因为它们可能会在软件包更新时被更新/替换)。相反,请使用“插入式”(覆盖)单元来覆盖选项。

    请参阅文档中的Control Docker with systemd

    需要将覆盖文件放在特定位置以便 systemd 加载它们(例如/etc/systemd/system/docker.service.d/override.conf)。

    创建覆盖文件的最简单方法是使用systemctl edit <name of service>。例如systemctl edit docker.service。这将在您的默认编辑器中打开一个具有正确名称/位置的空文件,您可以在其中指定覆盖。

    保存文件后,您可以使用systemctl cat <service name> (systemctl cat docker.service) 查看服务的所有活动 systemd 单元。如果这些看起来正确,请运行 systemctl daemon-reloadsystemctl restart docker.service 以使新配置生效。

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2019-02-14
      • 2020-12-28
      • 2014-11-14
      • 2016-03-16
      • 1970-01-01
      相关资源
      最近更新 更多