当前位置: 首页 > news >正文

docker学习(11)- 容器的日志(log)

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}}'

image
正常配置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。
image
正常配置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