首页 > 解决方案 > 停止和删除容器有时不起作用

问题描述

我有一个 shell 脚本 .sh 来停止和删除我正在运行的容器,它通常工作得很好。但是有十分之一的docker rm命令似乎在docker stop完成之前执行,因此它会引发容器仍在运行的错误。我能做些什么来防止这个错误?

docker stop nostalgic_shirley
docker rm nostalgic_shirley 

输出

nostalgic_shirley
nostalgic_shirley
Error response from daemon: You cannot remove a running container xxxx. Stop the container before attempting removal or force remove

如果我再尝试docker rm nostalgic_shirley再次使用,它工作正常。

我不应该使用docker stop --force,因为关机应该是优雅的

标签: shelldockersh

解决方案


如果您真的想在删除之前停止容器:

 docker stop nostalgic_shirley
 while [ ! -z "$(docker ps | grep nostalgic_shirley)" ]; do sleep 2; done
 docker rm nostalgic_shirley

如果没有,只需使用“强制”选项将其删除(您甚至可以跳过停止):

 docker rm -f nostalgic_shirley

推荐阅读