Docker容器日志配置
事件 有一个任务需要把当前正在使用的镜像导出为离线包,在导出过程中发现速度特别慢,第一反应是CPU或内存被拉満了,top查看后是正常的,那问题可能出在磁盘上。 服务器上暂时没有合适的查看磁盘I/O的工具,只好先看下容量: 1 df -h 瞬间发现磁盘使用率达到了95%以上,铁定有问题了! 1 du -h -d 1 / 发现/var目录巨大无比! 1 du -h -t 10G /var 发现有几个/var/lib/docker/containers/xxxxxx的文件特别大,问了deepseek,得到的回答是:docker默认会将容器内应用产生的日志记录在json日志文件里,且默认没有大小限制! 查了下容器的id,嗯,这下对上了,确实是日志的问题!那就限定下日志的大小即可。 方案 全局配置 全局配置适用于所有之后新建的容器。 修改/etc/docker/daemon.json,添加日志限制: 1 2 3 4 5 6 7 { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "5" } } 单容器配置 启动时通过参数直接限制: 1 docker run --log-opt max-size=10m --log-opt max-file=5 ... docker-compose.yaml配置 使用docker compose时,可以在docker-compose.yaml里配置: 1 2 3 4 5 6 7 8 services: your-service: image: your-image logging: driver: "json-file" options: max-size: "10m" max-file: "5" 也可以使用yaml锚点避免重复配置:...