如何清理 docker 覆盖目录?

新手上路,请多包涵

我正在通过 CoreOS 和 AWS 的 ECS 运行 docker。我有一个失败的映像,多次重新启动,容器仍然存在——它们填满了我的驱动器分区。具体来说, /var/lib/docker/overlay/ 包含大量文件/目录。

我知道 docker-cleanup-volumes 是一个东西,但它会清理 /volumes 目录,而不是 /overlay 目录。

docker ps -a 在我的坏 docker 容器上显示超过 250 次启动尝试。不过,它们并没有运行。

除了 rm -rf /var/lib/docker/overlay/* 之外,我/应该如何清理它?

原文由 tedder42 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 783
2 个回答

从我们这边我们使用:

 sudo docker system prune -a -f

这救了我 3Go!

我们还使用了著名的命令:

 sudo docker rm -v $(sudo docker ps -a -q -f status=exited)
sudo docker rmi -f  $(sudo docker images -f "dangling=true" -q)
docker volume ls -qf dangling=true | xargs -r docker volume rm

我们将它放在 cron 上以更有效地管理我们的磁盘空间。

参考: https ://forums.docker.com/t/some-way-to-clean-up-identify-contents-of-var-lib-docker-overlay/30604/4

原文由 user3774109 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是我现在正在执行此操作的 hacky 方式。我不会接受它作为答案,因为我希望有更好的方法。

 # delete old docker processes
docker rm `docker ps -a | grep Exited | awk '{print $1 }'`
  ignore_errors: true

# delete old images. will complain about still-in-use images.
docker rmi `docker images -aq`

原文由 tedder42 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题