【发布时间】:2021-02-10 09:17:52
【问题描述】:
我是码头工人和其他概念的新手。我有很多未使用的码头工人正在运行,我想删除所有这些码头工人。现在我手动杀死它。我们可以一次完成吗?
【问题讨论】:
-
是的,你可以做到。但是你为什么用python呢?
-
抱歉,我已经删除了。谢谢:)
我是码头工人和其他概念的新手。我有很多未使用的码头工人正在运行,我想删除所有这些码头工人。现在我手动杀死它。我们可以一次完成吗?
【问题讨论】:
docker rm $(docker ps -a -q)此命令删除所有停止的容器。上面的命令
docker ps -a -q返回所有现有的容器 ID,并将它们传递给docker rm命令删除它们。运行中的容器不会被删除。
或者,试试这个。
docker system prune -a删除所有未使用的图像,而不仅仅是悬挂的图像。它还将删除所有构建缓存
【讨论】:
正如@Emon 所说,您可以选择 docker prune。但请记住,修剪系统将删除所有停止的容器和所有未使用的图像。 既然你已经标记了 shell,我也添加了这个 shell 脚本。
echo -e "******* Start *******"
echo -e "\n=====> Stopping & Cleaning up UNUSED containers.."
for i in `docker ps -a | grep -v CONTAINER | awk '{print $1}'`; do docker stop $i ; docker rm $i ; done
echo -e "[CLEARED]\n"
docker ps -a
echo -e "\n=====> Removing UNUSED container images.."
for i in `docker images | grep none | awk '{print $3}'`; do docker rmi $i ; done
echo -e "[CLEARED]\n"
docker images
此脚本可以根据您的需要进行相应更改,例如如果您只想删除容器甚至图像。
这也可以通过以下方式轻松完成
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm
如果你只想单独移除退出的容器,你可以使用它
`docker rm $(docker ps -a -f status=exited -q)`
【讨论】: