gpt4 book ai didi

docker - 无法删除已停止的Docker容器

转载 作者:行者123 更新时间:2023-12-02 21:16:50 25 4
gpt4 key购买 nike

我试图强行停止并删除所有Docker镜像:
docker stop $(docker ps -a -q) && docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -a -q)

但是,我收到:
Error response from daemon: conflict: unable to delete 3b5b05d98767 (cannot be forced) - image is being used by running container deedefb82e27

据我了解,容器重新启动的速度比命令尝试删除它的速度快。

最佳答案

错误在于删除图像,而不是容器。这是由于容器尚未完全删除而造成的争用情况,或者您还有其他一些东西在系统上启动容器,例如群模式。

对于争用条件,只需在命令之间添加几秒钟,即可让rm时间在服务器上完成。另外,由于您正在执行rm -f,因此无需停止操作:

docker rm -f $(docker ps -a -q) \
&& sleep 2 && docker rmi -f $(docker images -a -q)

如果您有以集群模式运行的容器,请首先删除您不想运行的堆栈和服务:
# something like this, will only work if you have stacks defined
docker stack rm $(docker stack ls --format '{{.Name}}')

# similar command for services
docker service rm $(docker service ls -q)

每个容器可能要花费10秒钟才能退出容器,而群管理器还要花几秒钟来发送命令,因此在它们都返回后,您可能需要 sleep 15来给服务器时间来完成请求。

关于docker - 无法删除已停止的Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50294380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com