检查详细错误日志,看更深层次的报错:
journalctl -u docker.service --no-pager -n 50
停止相关进程
sudo systemctl stop docker
sudo systemctl stop containerd
删除残留的 pid 文件
rm -rf /var/run/docker.pid
rm -rf /var/run/docker.sock
重新加载并启动
sudo systemctl daemon-reload
sudo systemctl start docker
SELinux/防火墙: 医院常用的 CentOS 系统可能开启了 SELinux,尝试临时关闭看看:
setenforce 0
如果容器多且都卡住了,强制停止所有容器:
docker rm -f $(docker ps -aq)
强制停止 Docker 守护进程(服务级)
如果你发现 systemctl stop docker 一直卡住不动(就像你截图中显示的 stop-sigterm timed out),你需要从系统底层杀掉守护进程:
第一步:直接杀掉 dockerd 进程
sudo pkill -9 dockerd
sudo pkill -9 containerd
第二步:清理残留的隔离进程(Shim)
Docker 容器其实是由 containerd-shim 运行的,有时候主进程死了它们还活着:
ps -ef | grep docker-containerd-shim | awk '{print $2}' | xargs kill -9
- 彻底清理挂载点(针对重启后无法启动)
根据你之前的报错,Docker 无法启动往往是因为强制停止后,文件系统挂载点没卸载干净。这是最彻底的“强停”后遗症处理法:
手动卸载挂载目录:
umount /var/lib/docker/overlay2/*/merged
清理网络网桥:
ip link delete docker0
查看 docker.service文件是否存在:vi /usr/lib/systemd/system/docker.service