Docker 删除 状态为Dead 的容器
错误信息
因为一些不正确的操作,导致容器的状态变成了 dead
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
468389d93c62 df4469c42185 "/usr/bin/dumb-ini..." 6 months ago Dead k8s_nginx-ingress-controller_nginx-ingress-controller-sqc2x_ingress-nginx_ce8d39e5-5459-11e9-afe4-00163e059fef_1
这类的容器删除时会报错
Error response from daemon: Driver overlay2 failed to remove root filesystem 468389d93c627523310b2d5cf3a99e6344cf276874b00e2a1e90f892f6c6bf5e: remove /var/lib/docker/overlay2/d604787a1699595ecf66126e6604d01d90f6766546bfa0df36752e10d129fafe/merged: device or resource busy
解决方式
找到 overlay2 后面的字符串,查询被占用的进程,将其 kill 掉即可
grep d604787a1699595ecf66126e6604d01d90f6766546bfa0df36752e10d129fafe /proc/*/mountinfo | awk '{print substr($1,7,5)}' | xargs kill -9
- print 是awk打印指定内容的主要命令
- $0 表示整个当前行
- $1 每行第一个字段,每个字段以空格隔开
- substr($1,7,5) 每行第一个字段,第7个字符开始,截取5个字符
然后在 docker rm container
Comments | NOTHING