docker.service - 如何编辑 systemd 服务文件?

ove*_*nge 5 linux systemd docker

需要编辑以下条目:

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
Run Code Online (Sandbox Code Playgroud)

/lib/systemd/system/docker.service文件中


$ sudo -E systemctl edit docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock
Run Code Online (Sandbox Code Playgroud)

重启后没有更新服务文件(sudo systemctl restart docker.service


编辑服务文件(docker.service)的推荐方法是什么?

Sha*_*rpC 5

我发现使用该systemctl edit命令很棘手(使用 Ubuntu 18.04),所以我这样做了:

sudo mkdir /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/override.conf
Run Code Online (Sandbox Code Playgroud)

然后添加我需要的行,在你的情况下:(
是的,显然空的第一ExecStart=行不是一个错误)

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock
Run Code Online (Sandbox Code Playgroud)

接下来重新加载,重新启动并检查它正在侦听指定的端口:

sudo systemctl daemon-reload
sudo systemctl restart docker.service
sudo netstat -lntp | grep dockerd
Run Code Online (Sandbox Code Playgroud)