docker服务无法停止的问题解决方法

我们在使用系统服务管理命令systemctl停止docker的时候出现无法停止的问题,具体问题现象如下:

systemctl stop docker
Stopping 'docker.service', but its triggering units are still active:
docker.socket

这意味着即使 Docker 服务已停止,如果应用程序尝试连接到 docker.socket,系统将自动启动 Docker 服务。

针对这种问题,可以使用下面的方法进行除了。

停止docker的套接字

sudo systemctl stop docker.socket

如果完全不想启动docker也不想再次被访问docker的套接字激活docker服务的话,可以使用下面这种方式彻底停止。

首先删除docker的通信套接字文件

sudo rm /lib/systemd/system/docker.socket

从 docker.service 文件中删除 -H fd:// 参数,以防止通过套接字激活。

我们先看下docker服务的配置,然后使用sed命令进行替换,首先做好备份

cat /lib/systemd/system/docker.service  | grep -iE -v '^(#|$)' >/tmp/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target nss-lookup.target docker.socket firewalld.service containerd.service time-set.target
Wants=network-online.target containerd.service
Requires=docker.socket
StartLimitBurst=3
StartLimitIntervalSec=60
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target

然后使用如下命令进行替换

sudo sed -i '/-H fd:\/\//d' /lib/systemd/system/docker.service

这样docker服务再就不会被自动激活了。

如果需要恢复使用备份进行恢复即可

cat /tmp/docker.service >/lib/systemd/system/docker.service
systemctl start docker.service

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/1098

评论列表

0%