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
经验分享 程序员 微信小程序 职场和发展