docker项目磁盘满问题解决
近期有个docker项目的虚拟机磁盘满,分享一下解决过程
1.查询大于800M的文件
find / -type f -size +800M
或者
find / -type f -size +800M -print0 |xargs -0 du -h
2.删除对应docker目录的大文件
但是总这样做治标不治本,通过观察大文件目录发现总是docker容器日志文件过大
目录为
/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log
3.解决方案
通过配置容器docker-compose.yml的max-size选项来实现日志大小限制:
nginx: image: nginx:1.12.1 restart: always logging: driver: "json-file" options: max-size: "10m"
max-size参数含义,限制json.log日志文件大小,这个限制不影响容器运行,也不影响probackend目录的日志。
另一方案:
全局配置docker 只对新容器有效
新建/etc/docker/daemon.json,若有就不用新建了
vi /etc/docker/daemon.json
{ "registry-mirrors": ["http://f613ce8f.m.daocloud.io"], "log-driver":"json-file", "log-opts": {"max-size":"500m", "max-file":"3"} }
max-size含义与上面的类似。
4.重启容器并加载yml配置
docker 重启特定容器并重载yml配置
docker-compose up --detach --build "service name"
如
docker-compose up --detach --build "basic"
docker 重启所有容器并重载yml配置
docker-compose up -d
上一篇:
通过多线程提高代码的执行效率例子