解决Docker不能stop或者kill一个容器方法

今天在弄Docker时候突然发现不能stop或者kill容器了,表现就是运行docker stop 命令半天没有反应。

1. 一篇帖子的方法

首先参考这一篇帖子,感觉讲的不错,这里先列举一下作者的方法。Docker中无法停止或删除容器服务问题处理

  1. 执行删除命令无法删除docker的目录, 这里的话caf8ef20f3c1换成你想要stop的容器ID。
ll /var/lib/docker/containers | grep caf8ef20f3c1
cd /var/lib/docker/containers 
rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8

这个时候我们会收到这样的报错:

rm: 无法删除"/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets": 设备或资源忙
    无法删除"/var/lib/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm": 设备或资源忙
  1. 从上面报错我们可以看到“secrets”和“shm”共享挂载导致无法删除,首先找到挂载的位置,然后取消挂载后,再删除:
cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1"


Docker中无法停止或删除容器服务问题处理

  1. 取消挂载,这是上面的挂载目录。
umount /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/secrets
umount /data/sys/var/docker/containers/caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8/shm
  1. 再次查看已经没有显示了。
cat /proc/mounts |grep "docker" |grep "caf8ef20f3c1"  
  1. 现在执行删除docker的目录:
cd /var/lib/docker/containers 
rm -rf caf8ef20f3c1c78f03a5844ee23abc1d7e44246f242292040f1ef288899d0cb8
  1. 删除容器服务

现在我们使用 rm 或 kill 来删除 容器服务:

docker rm -f caf8ef20f3c1c
或
docker kill --signal=SIGINT  caf8ef20f3c1

如果上面命令运行之后,出现hang住(卡住)现象,请重启docker服务:

 sudo service docker restart

2. 最终我的方法

开始我觉得按照上面的方法是可以的,运行了前面的4步是可以的,也unmout的一个挂载的目录,但是运行第5步rm -rf命令的时候,还是出现了设备忙的,这就很尴尬了。没有办法,还是要继续解决的。

    执行cat /proc/mounts | grep "448402cd2b11"命令是没有显示的,表示我们已经unmount所有的挂载目录了("448402cd2b11"是我的自己想要删除的容器,上面的容器是作者在它文章中删除的容器)。 然后我们执行rm -rf 448402cd2b11652479e6bfb7f9959fe61f8e51624da6c756291a0c339d7519b6仍然出现设备忙的。
在这里插入图片描述
    好像问题到这里就没有办法了。然后我在另外一篇博客Linux不能删除,报错”Device or resource busy” 看到了类似的问题,想能不能试一试。然后将其迁移到我们这里, 使用命令:
lsof |grep "448402cd2b11652479e6bfb7f9959fe61f8e51624da6c756291a0c339d7519b6" 命令查看哪个进程在使用该镜像:

然后我们找到了有两个进程使用镜像,分别是2526993855, 我们不知道kill哪个会有效果。然后我们就分别运行kill -9 25269kill -9 93855 然后发现前者不起效果,后者起效果。
在这里插入图片描述

好吧,终于又可以愉快的玩耍了。

你可能感兴趣的:(Docker,Docker,stop)