Docker容器处于Removal in process无法删除

在正常情况下执行docker rm会将容器删除,但是如果容器处于Removal in process状态下,

执行docker rm会出现:

remove /mnt/docker/devicemapper/mnt/remove /mnt/docker/devicemapper/mnt/XXXXXXXX: device or resource busy

基于这种情况,可以通过以下方式解决:

1.查看容器关联的进程:

$ grep docker /proc/*/mountinfo | grep [XXX对应的值]
$ /proc/[ProcessID]/mountinfo.......

2.杀掉进程即可。

$ kill -9 [ProcessID]

3.再次执行docker rm即可删除容器。

$ docker rm containerID

删除docker容器状态为Dead的container

最近测试在使用容器时候会有容器处于Dead的状态,网上有说删除方法,可以使用

docker stop share-mnt 1>/dev/null 2>&1 | exit 0
docker rm -f share-mnt 1>/dev/null 2>&1 | exit 0

这种方式会有删除不掉的情况,所以在用在这种方式删除前重启服务器,那么就能删除掉。

还有一种方式就是到docker目录比如 /var/lib/docker删除相应文件夹目录

如果不想重启docker也可以使用这种办法先,如果碰到如下错误信息

grep docker /proc/*/mountinfo | grep 05f8df6a90a55c55e15e8361e13c6b111c0298017908a46fa5a643f38c766876 | awk -F':' '{print $1}' | awk -F'/' '{print $3}'

查出进程号,然后使用kill -9 processid

再使用docker rm -f containe id删除掉。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

发表回复