Docker容器日志清理

如何清理Docker占用的磁盘空间? - DockOne.io

补充:

  1. 查看docker日志文件,单独列出每个容器的日志文件大小。

    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
    
  2. docker容器所在目录 /var/lib/docker

  3. docker的/var/lib/docker目录迁移 - 熊小熊的个人页面 - OSCHINA

  4. 设置Docker容器日志大小(治本)

    4.1 设置一个容器服务的日志大小上限

    在启动容器的时候增加一个参数设置该容器的日志大小,及日志驱动

    --log-driver json-file  #日志驱动
    --log-opt max-size=[0-9+][k|m|g] #文件的大小
    --log-opt max-file=[0-9+] #文件数量
    

    4.2 编辑文件/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。
    

    4.3 然后重启docker守护进程

    systemctl daemon-reload
    systemctl restart docker
    
    注意:设置的日志大小,只对新建的容器有效。
  5. 删除docker容器(正在运行的,避免影响线上)日志的时候,尽量不用rm

    如果docker容器正在运行,那么使用rm -rf 方式删除日志后,通过df -h会发现磁盘空间并没有释放

    原因:在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

    方案:采用 truncate -s 0 日志名 来处理,这样清理出了空间,同时不影响线上环境。若执意要用rm删除,就必须重启docker,这样影响线上环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值