Docker Swarm Mode 的容器资源回收问题
问题描述
Docker Swarm Mode 中 service 的update/scale
等操作都会形成残留的容器和镜像,会造成一定程度的磁盘空间占用及缓存占用等问题...
解析
存在即合理,残留的容器和镜像是有一定作用的:
- 事务相关 - docker service 更新失败后需要马上回滚
- 异常回溯 - 通过查看容器和镜像信息,以便快速定位到对应的
Dockerfile/docker-compose.yml
解决办法
虽然存在即合理,
但我还是想要清除这些看着烦的残留的容器和镜像?
- docker version 1.12及之前,只能手搓查看和删除命令来实现了
- docker version 1.13及之后,可以通过如下命令来方便快捷的清除无用内容:
docker system prune --force
- 更进一步的,可以做个
crontab
计划任务 - 再进一步的,可以在把清除步骤加入到更新完成,健康检测OK之后.
参考文档