查看日志

# docker logs --help
Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --help           Print usage
      --since string   Show logs since timestamp
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps

命令使用必须指定容器。

示例:

查看日志
docker logs container_id
查看实时日志
docker logs -f container_id
查看末尾100行的日志
docker logs --tail=100 container_id
查看日志并显示时间戳
docker logs -t container_id
查看最近30分钟的日志
docker logs -t --since 30m container_id
查看指定时间之后的日志
docker logs -t --since="2018-02-08T13:23:37" container_id
查看指定时间段之间的日志
docker logs -t --since="2018-02-08T13:23:37" --until="2018-02-09T12:23:37" container_id
参考:
https://www.jianshu.com/p/1eb1d1d3f25e

日志处理

当容器运行时,docker会在宿主机上创建一个该容器相关的文件,然后将容器产生的日志转存到该文件下。一般存储在/var/lib/docker/containers/<container_id>下,文件名为<container_id>-json.log

容器运行的日志全部由这个文件负责记录,业务量大时,这个文件大小增长速度会非常快。以下通过配置控制它的体积。

docker的日志插件默认使用json-file,日志的设置推荐在docker-compose.yml中标记。如下:

version: '3'
services:
  xxx:
    ...
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "10"

【注意】version至少填3,如果不需要日志,driver处填"none"即可关闭。

也可以全局设置,在 /etc/docker/daemon.json 文件中添加关于日志的参数(无此文件的可以新建),如下:

{
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    }
}

设置后重启docker服务,然后新创建的容器的日志都会受到此限制:

systemctl daemon-reload

systemctl restart docker

参考:
https://objcoding.com/2019/01/31/docker-container-log/
https://hacpai.com/article/1576138670804

清理已存在的日志文件,释放磁盘空间:
直接rm -rf 删除即可。如果容器正在运行,需要用> xxx-json.logcat /dev/null > xxx-json.log

文章目录