在使用docker的机器上,时间长了会发现磁盘满的非常快,这里提供一个docker官方的清理办法
一、清理前查看总体磁盘情况
还剩2g就满盘了...进到占用最大的文件夹查看
基本上都是docker相关的占用了
二、查看docker占用
运行 docker system df
三、清理无用容器、镜像
清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像)
docker system prune
将没有容器使用 Docker 镜像都删掉,暂时没有用到的 Docker 镜像都删掉
docker system prune -a
注意:这两种方式执行的时候会将所有容器暂停。
这里我执行的是 docker system prune -a
紧接着我再次查看了docker占用情况
- 清理容器日志文件
truncate -s 0 /var/lib/docker/containers/容器id全称/*-json.log
执行 cd /var/lib/docker/containers
进到具体目录,查看一下这个文件夹的磁盘占用情况
然后按容器id一个个执行清理容器日志文件,都执行完成后,再次查看当前文件夹的磁盘占用情况
四、最后重新查看总体磁盘情况
可以看到现在可用有11g左右了
五、控制容器日志文件最大限制
说明:此方法未验证
nginx:
image: nginx:1.12
logging:
driver: "json-file"
options:
max-size: "1g"
总结
docker的磁盘占用一般有4个方面:
- images占用 -- 清理无用的镜像
- 容器占用 -- 清理无用的容器
- 日志文件占用 -- 清理及控制日志文件的大小
- 挂载卷占用 -- 一般不用清理,谨慎清理,容易引起容器异常