docker image rm 命令挂起后无法运行

docker image rm 命令挂起后无法运行

我的一些服务器的磁盘使用率是 100%,所以我尝试删除未使用的 docker 镜像来获取一些磁盘空间。

除了一台服务器之外,docker image rm 命令运行良好。

但对于某个服务器,该命令不起作用。

USER@HOST:/home1:> docker rmi DOCKER_IMAGE_ID --force

该命令执行后没有任何反应,并且该命令不会退出。

我添加了-debug选项,但还是一样,没有打印任何信息。

docker ps命令运行良好。

我该如何解决这个问题?

或者,有没有办法通过找到相应的文件并运行来删除 docker 镜像rm SOME_FILE

答案1

对于图像,命令是docker rmi imagename/id

对于容器,命令是docker rm containername/id

答案2

如果它挂了,那要么是 docker 引擎或底层主机中的一个错误。

如果是 docker 引擎本身挂了,那么检查引擎的日志可能会有帮助。使用 systemd,你可以使用 journalctl 提取这些日志:

sudo journalctl -u docker

为了进一步调试 Go 堆栈,你可以强制输出堆栈跟踪:

sudo kill -SIGUSR1 $(pidof dockerd)

这些日志将被写入/var/run/docker/

如果 Linux 主机本身出现问题(例如驱动器故障),则检查中的日志/var/log和输出dmesg可以帮助找出潜在原因。

当然,最简单的答案就是先关闭它然后重新打开,然后使用以下命令重新启动 docker 引擎:

sudo systemctl restart docker

答案3

我曾经看到 docker 以这种方式挂起,而它应该失败并出现类似错误:

Error response from daemon: conflict: unable to remove repository reference "<image name>" (must force) - container <container_id> is using its referenced image <image_id>

尝试:docker rm <container_id>如果您知道有容器使用该图像,或者docker container prune(小心)删除所有已停止的容器,然后docker rmi <image_name>再试一次。

相关内容