清理旧的Docker容器

时间:2020-01-09 10:34:18  来源:igfitidea点击:

使用Docker容器的最大优势之一是能够立即快速启动任何数量的新服务。部署新版本的容器可以同样快地完成。但是,所有这些活动最终都意味着我们周围有一堆旧货柜。通过本教程了解如何清洁旧的Docker容器。

我们可能会发现自己处于每小时或者什至每几分钟进行一次构建的环境中。所有这些构建都将替换以前的构建,这意味着死主机将使Docker主机的存储不堪重负。

存储不是唯一的问题。可能会为我们分配容器的实际名称,而不仅仅是为我们生成随机的名称。如果我们不删除旧容器,则无法使用相同的名称。

以下是可用于确保定期清理不需要的旧容器的解决方案。

定期删除Docker容器

如果我们没有生成一堆容器,但是存储空间已用完,则以下操作将删除所有停止的容器。

docker ps -q -f status=exited | xargs --no-run-if-empty docker rm

计划移除Docker容器

自动执行清理任务将确保我们解决存储问题。我们可以创建一个定期运行的cron作业,以保持环境清洁。我们决定多久清理一次旧容器取决于我们生成新容器的速度和可用的存储量。

我们需要对cron的工作方式有所了解。我不会在本文中详细介绍,但是以下示例应该可以理解。

以下cron作业每周(星期日)凌晨4:00运行一次。

0 4 * * 0 docker ps -q -f status=exited | xargs --no-run-if-empty docker rm

以下cron作业将在每小时的15分钟后每小时运行一次。

15 * * * * docker ps -q -f status=exited | xargs --no-run-if-empty docker rm

接下来的Cron作业每天午夜运行一次。

* 0 * * * docker ps -q -f status=exited | xargs --no-run-if-empty docker rm