关于docker容器日志文件写满磁盘的处理

背景

今天停止容器,然后通过docker ps命令查看时,发现还存活,而通过docker restart 容器,报错。
提示:
Error response from daemon:Cannot restart container XX:write /var/lib/docker/containers/XX:no space left on device

分析

根据no space left on device,表示磁盘空间不足。

#1.进入到给定的目录下,查找对应的文件大小。
cd /var/lib/docker/containers/ && du --max-depth=1 -h
#2.进入最大的文件夹,查看具体是哪些文件过大。
cd./afc52d74e28f9af839fbe5a5805cbae726c5f0ef4653a15d77d575a7f8cc0b31/
#3.查看最大的文件
ls -lv

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过查看,可见 *json.log日志文件比较大。通过官网查看文档得知,默认的标准输出写入到该文件中。
关于docker容器日志文件写满磁盘的处理_第1张图片
如何解决呢?
1.删除容器。重新创建。
如果按1方法,只是治标不治本,因为随着时间的推进,日志还是会写满磁盘,如何才能治本呢?
全局设置 /etc/docker/daemon.json。
针对日志驱动,json-file,最大的写入为10m,最大文件个数据为3。如果写满了三个文件,则删除最早的文件,重新写。

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3" 
  }
}

#重新服务
service docker restart

#重新创建服务查看日志

注:以前创建的容器要是想适应于该日志模式,必须删除,重新创建。
关于docker容器日志文件写满磁盘的处理_第2张图片
在这里插入图片描述
为了实现测试效果,将10m改为10k。
执行后的效果
关于docker容器日志文件写满磁盘的处理_第3张图片

你可能感兴趣的:(容器)