Docker-查看容器日志

  1. 1.如何找出docker容器日志文件?
  2. 2.如何清理日志
  3. 3.设置Docker容器日志大小
    1. 3.1 针对单容器设置
    2. 3.2 全局设置
    3. 3.3 重启docker守护进程

1.如何找出docker容器日志文件?

在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件

# 查看各个容器的日志文件大小
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

2.如何清理日志

如果docker容器正在运行,那么使用rm -rf 方式删除日志后,通过df -h会发现磁盘空间并没有释放。

  1. 原因:

    在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用

# 正确操作
cat /dev/null > *-json.log

# 或者rm删除后,重启docker

清理脚本:

#!/bin/sh

echo "==================== start clean docker containers logs =========================="

logs=$(find /var/lib/docker/containers/ -name *-json.log)

for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done


echo "==================== end clean docker containers logs   =========================="

3.设置Docker容器日志大小

通过配置容器docker-compose的max-size选项来实现

3.1 针对单容器设置

如nginx:

nginx: 
  image: nginx:1.12.1 
  restart: always 
  logging: 
    driver: "json-file" 
    options: 
      max-size: "5g" 
      ....

重启nginx容器之后,其日志文件的大小就被限制在5GB,再也不用担心了。

3.2 全局设置

新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数如下:

{
  "registry-mirrors": ["https://ud17re9w.mirror.aliyuncs.com"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}
  • max-size=500m,意味着一个容器日志大小上限是500M,
  • max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

3.3 重启docker守护进程

# systemctl daemon-reload

# systemctl restart docker

转载请注明来源,欢迎指出任何有错误或不够清晰的表达。

文章标题:Docker-查看容器日志

文章字数:468

本文作者:猿码记

发布时间:2018-07-12 11:33

原始链接:liuqh.icu/2018/07/12/查看容器日志/

版权声明: 转载请保留原文链接及作者。

目录
×

看您心情~~