Docker 磁盘占满解决方案

2020-11-16 发现线上服务访问不了报以下错误

 

登录服务器df -h 查看docker的overlay已用%100 

然后查找 linux 系统最大的10个文件 
find / -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

找出是docker的*-json.log日志文件有好几个20几个G的

 

然后找到日志文件将*-json.log日志清空,命令 cat /dev/null > ***** 

du -sh * 查看当前目录下各文件占用大小

但是,这样清理之后,随着时间的推移,容器日志会像杂草一样,卷土重来。要从根本上解决问题,需要限制容器服务的日志大小上限。这个通过配置容器docker-compose的max-size选项来实现

解决方案

1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

# vim /etc/docker/daemon.json

 

{

  "log-driver":"json-file",

  "log-opts": {"max-size":"500m""max-file":"3"}

}

max-size=500m,意味着一个容器日志大小上限是500M,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

// 重启docker守护进程

 

# systemctl daemon-reload

 

# systemctl restart docker

注意:设置的日志大小,只对新建的容器有效。

2.启动容器时,可以通过参数设置日志文件的大小、日志文件的格式。

docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash

 

Docker 命令

  docker stats  nginx  查看容器运行状态

  运行容器的时候添加 docker run --name=nginx --cpus=1  -m=2g  -d  nginx  因为在运行容器的时候不指定资源限制的话,容器之间会竞争资源,甚至会影响服务的调用. 

https://blog.csdn.net/weixin_32820767/article/details/81196250

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值