docker学习(11)- 容器的日志(log)
2026-04-16 13:52 xiashengwang 阅读(0) 评论(0) 收藏 举报创建容器时不指定日志配置,日志会无限扩张。有2种控制日志的方法。
1,全局设置(推荐)
修改/etc/docker/daemon.json,加入下面的配置。daemon.json如果不存在,可以手动创建一个。daemon.json一般还有配置加速镜像的网址,这里只列出日志部分。
每个日志文件10M,最大允许3个,一般项目足够了。
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}
}
2,个别容器单独设置
个别容器设置 > 全局设置,个别容器的设置会优先于全局设置。
容器启动的时候,用--log-opt 指定max-size和max-file参数。
docker run \
--log-opt max-size=50m \
--log-opt max-file=5 \
...
3,查看容器的Log配置情况
3.1 查看所有容器的log配置情况
docker ps -q | xargs docker inspect --format '{{.Name}}: {{.HostConfig.LogConfig}}'

正常配置log的话,应该如下;
/nginx: {json-file map[max-size:10m max-file:3]}
/mysql: {json-file map[]} <-- 这个没限制!危险!
3.2 查看单个容器的log配置情况
docker inspect 容器ID或容器名 | grep -A 10 LogConfig
下图代表容器没有指定任何log。

正常配置log的话,应该如下;
"LogConfig": {"Type": "json-file","Config": {"max-size": "10m","max-file": "3"}
},
4,查看容器运行的Log
4.1 查看log的命令
容器运行中的报错信息等,可以通过这个来查看。
dokcer logs 容器ID或容器名
4.2 log的存放路径
log是存放在宿主机上的,linux位置如下:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
