无法正常停止docker进程

网友投稿 340 2022-10-25

无法正常停止docker进程

现象

通过systemctl status docker命令查看Docker运行状态,发现一切正常,内容如下:

# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2021-06-25 09:35:06 CST; 2min 33s ago Docs: https://docs.docker.com Main PID: 30410 (dockerd) Tasks: 52 Memory: 71.3M CGroup: /system.slice/docker.service └─30410 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Jun 25 09:35:05 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:05.946196345+08:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] }" module=grpc Jun 25 09:35:05 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:05.946220995+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc Jun 25 09:35:05 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:05.971414786+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2" Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.041039447+08:00" level=info msg="Loading containers: start." Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.161535240+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.204739951+08:00" level=info msg="Loading containers: done." Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.234685332+08:00" level=info msg="Docker daemon" commit=8728dd2 graphdriver(s)=overlay2 version=20.10.6 Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.234789592+08:00" level=info msg="Daemon has completed initialization" Jun 25 09:35:06 localhost.localdomain systemd[1]: Started Docker Application Container Engine. Jun 25 09:35:06 localhost.localdomain dockerd[30410]: time="2021-06-25T09:35:06.260437753+08:00" level=info msg="API listen on /var/run/docker.sock"

当我想去停止Docker服务时,执行systemctl stop docker多次,结果如下:

Warning: Stopping docker.service, but it can still be activated by: docker.socket

使用journalctl -xe对 docker 进程进行跟踪排查,并没有发现有用信息。

故障分析

Docker 有两个服务进程文件,可以通过cd /lib/systemd/system/ && ll|grep docker查看,分别是docker.service unit file 和 docker.socket unit file,上面的警告意味着如果你试图停止docker服务,但docker.socket unit file还处于激活状态。

解决方法

停止 docker socket

# 停止 docker 服务 sudo systemctl stop docker.socket sudo systemctl stop docker.service

# 启动 docker 服务 sudo systemctl daemon-reload sudo systemctl restart docker.service

删除 docker socket 文件

如果上面”温和“方法并没有解决你的问题,我们可以采用下面”暴力“方法。

# 删除 docker socket 文件 cd /lib/systemd/system/ && rm -rf docker.socket # 查看 docker 状态,已dead sudo systemctl status docker.service # 重新创建 docker.socket cd /lib/systemd/system/ vim docker.socket # 添加如下内容 [Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target

# 重启 docker sudo systemctl daemon-reload sudo systemctl restart docker.service

此时,再进行 docker 相关操作,比如:停止、启动、重启,均可正常执行。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot实现多数据源的切换实践
下一篇:接口电路设计方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~