Docker 日志信息
背景
docker 容器启动, 通过 docker logs -f container 可以实时查看日志
但是控制台输出的日志太多,会怎么样,容器里控制台输出的日志在宿主机什么位置?
有时容器输出太多,运行时间长了后,会把磁盘撑满…
解释
docker 里容器的日志都属于标准输出(stdout)
每个 container 都是一个特殊的进程,由 docker daemon 创建并启动,docker daemon 来守护和管理
docker daemon 有一个默认的日志驱动程序,默认为json-file
json-file 会把所有容器的标准输出和标准错误以json格式写入文件中,这个文件每行记录一个标准输出或标准错误并用时间戳注释
修改配置
vim /etc/docker/daemon.json
增加一条:{“log-driver”: “none”} (也可以添加{“log-opts”: {“max-size”: “10m” }} 来控制log文件的大小)
重新加载配置文件并重启docker服务: systemctl daemon-reload
docker-compose 配置
1 | logging: |
这样就不需要修改 daemon.json 配置文件了
查看日志位置
- docker inspect container_id | grep log
- 进入上述目录
- du -sh *