0

目前我已经使用 /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

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

提前致谢

4

1 回答 1

1

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

请参阅文档中的使用 systemd 控制 Docker 。

覆盖文件需要放在特定位置以便 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-reload并使systemctl restart docker.service新配置生效。

于 2021-07-02T20:49:50.970 回答