使用docker容器技术的好处:
- 所有主机的配置都非常简单,只需要安装Docker,这样新增主机的时候要简单很多。
- 可以非常方便地在不同主机之间迁移各种服务,下载Docker镜像就可以运行,不需要手动配置运行环境。
- 开发/测试环境与生产环境严格一致,不用担心由于环境问题导致部署失败。
1. docker system命令 先查看本地文件系统的磁盘状况
# df -h
- docker system df
文章图片
可知,Docker镜像占用了14.88GB磁盘,Docker容器占用了447MB磁盘,Docker数据卷占用了0GB磁盘,build缓存占用了0GB磁盘。
- docker system prune
# docker system prune
删掉所有没有容器使用的Docker镜像,清理得更加彻底
# docker system prune -a
注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了,所以使用之前一定要想清楚。
查看Docker的磁盘使用情况
# docker system df
查看清理之后的磁盘状态
# df -h
2. 手动清理Docker镜像/容器/数据卷
对于旧版的Docker(版本1.13之前),是没有docker system命令的,因此需要进行手动清理,这里给出几个常用的命令。
- 停止所有运行的容器
# docker stop $(docker ps -a | awk '{print $1}')
- 删除所有关闭的容器
# docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
- 删除所有dangling镜像(即无tag的镜像):
# docker rmi $(docker images | awk "{print $2}" | grep "^")
- 删除所有dangling数据卷(即无用的volume):
# docker volume rm $(docker volume ls -qf dangling=true)
查看清理之后的磁盘状态
# df -h
3. 重启Docker
还有一次,当我清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少。根据Docker disk usage提到过的建议,我重启了Docker,发现磁盘使用率从83%降到了19%。根据高手指点,这应该是与内核3.13相关的BUG,导致Docker无法清理一些无用目录:
我查看了一下内核版本,发现真的是3.13:
# uname -r
3.13.0-86-generic
如果你的内核版本也是3.13,而且清理磁盘没能成功,不妨重启一下Docker。当然,这个晚上操作比较靠谱。
4. 参考文章
【如何清理Docker占用的磁盘空间?】http://blog.csdn.net/B9Q8e64lO6mm/article/details/79070442
推荐阅读
- linux|2022年云原生趋势
- 个人日记|K8s中Pod生命周期和重启策略
- k8s|k8s(六)(配置管理与集群安全机制)
- Go|Docker后端部署详解(Go+Nginx)
- docker|Docker
- 【快速学习】docker构建java项目实践
- Alpine Docker 安装 bash
- docker|docker导入dmp文件到oracle容器
- 阿里云docker开发者平台镜像上传和下载
- 工具|dockers 自定义tomcat