Docker容器 Dead 状态分析
报错[root@docker ~]# docker rm -f nginx-webError response from daemon: Driver devicemapper failed to remove root filesystem 2205f0562812bf3007155f3bb2670508783e23d12428e31fa42caa0d8f68ca22: remove...
·
报错
[root@docker ~]# docker rm -f nginx-web
Error response from daemon: Driver devicemapper failed to remove root filesystem 2205f0562812bf3007155f3bb2670508783e23d12428e31fa42caa0d8f68ca22: remove /data01/var/lib/docker/devicemapper/mnt/01bf74d1cd26d2fed52d2eb2f881acd0401431952e7c115ffc3107311c191341: device or resource busy
原因分析
- 挂载泄露
解决方法(一)
- 这种方式会有删除不掉的情况,所以在用在这种方式删除前重启服务器,那么就能删除掉.
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 删除相应文件夹目录
grep docker /proc/*/mountinfo | grep nginx-web | awk -F':' '{print $1}' | awk -F'/' '{print $3}'
- 查出进程号,然后使用kill -9 ID .
- 再使用docker rm -f ID/name 删除掉 .
- 有时候测试的时候会生成大量的容器,一个一个停用然后删除没有效率.
停用全部运行中的容器:
docker stop $(docker ps -q)
删除全部容器:
docker rm $(docker ps -aq)
一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
报错
Error response from daemon: conflict: unable to delete d8638d086558 (cannot be forced) - image has dependent child images
- 在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器(哪怕是已经停止的容器),否则无法删除该镜像.
停止容器
# docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除容器
# docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
删除镜像
# docker rmi $(docker images | grep "none" | awk '{print $3}')
更多推荐
已为社区贡献4条内容
所有评论(0)