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