美文网首页
docker 删除镜像卡住解决方法

docker 删除镜像卡住解决方法

作者: 春秋不做梦 | 来源:发表于2021-06-08 00:08 被阅读0次

正常删除无用的镜像

$ docker images |grep none
$ docker rmi <IMAGE ID>      #删除
$ docker rmi -f  <IMAGE ID>   #强制删除

若以上方法不能删除镜像,且命令执行卡住无输出

$ docker ps -a   #列出所有的容器
$ docker rm <CONTAINER ID>  #删除status为Exited的容器
#删除动作卡住
#docker默认目录:/var/lib/docker
#所有docker容器的信息都挂载在/var/lib/docker/containers目录下
#通过【CONTAINER_ID】找到该假死服务的目录

$ ll /var/lib/docker/containers | grep 【CONTAINER_ID】
$ cd /var/lib/docker/containers
$  rm -rf  <目录名>

#这里删除可能会报下面的错误,因为你的容器还挂载了其他目录,信息如下:
rm: 无法删除"/var/lib/docker/containers/目录名/secrets": 设备或资源忙,无法删除"/var/lib/docker/containers/目录名/shm": 设备或资源忙
#这个时候查一下容器对应的挂载目录
$ cat /proc/mounts |grep "docker" |grep "【CONTAINER_ID】"
#然后先卸载
$ umount /data/sys/var/docker/containers/挂载目录/shm
#如果这一步 unmout 不了,可以尝试找到使用该目录的进程

$ lsof |grep "挂载目录"  
$ps -ef | grep【CONTAINER_ID】

#如果有相关进程,记录相关的进程号直接 kill -9 进程号
#这个时候再重新执行删除目录命令

$  ll /var/lib/docker/containers | grep 【CONTAINER_ID】
$ cd /var/lib/docker/containers
$ rm -rf <目录名>
这个时候就可以删掉了

再次查看status为Exited的容器

$ docker ps -a|grep Exited #此时容器已消失
$ docker rmi <IMAGE ID>
$ docker images |grep none #此时为none的镜像也被删除了

相关文章

网友评论

      本文标题:docker 删除镜像卡住解决方法

      本文链接:https://www.haomeiwen.com/subject/isdosltx.html