docker容器在运行时,会持续不断地产生日志,这些日志在什么地方,如何查看和管理这些日志呢?

1、查看docker日志

docker logs 容器ID#此时会看到很多的日志输出出来,(如果容器运行时间比较久的话)

对应在/var/lib/docker/containers目录下,每个容器ID对应一个文件夹,存放的都是容器的日志,如下图
image

2、docker日志管理

docker容器日志会持续不断地输出,如果不进行清理,最终会导致磁盘空间不足

  • 2.1、将文件内容清空
cat /dev/null > *-json.log

注:docker容器正在运行,那么使用rm -rf方式删除日志后,通过df -h会发现磁盘空间并没有释放。原因是在Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(un )。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

  • 2.2、max-size限制docker容器日志大小
    限制单个容器大小,重启容器
nginx:   image: nginx:1.12.1   restart: always   logging:     driver: "json-file”     options:       max-size: "5g"       max-file: 3

限制宿主机上所有容器大小,重启docker进程和容器
/etc/docker/daemon.json

{  "registry-mirrors": ["https://registry.docker-cn.com"],   "insecure-registries": ["registry.docker-cn.com"],  "max-concurrent-downloads": 10,  "log-driver": "json-file",  "log-level": "debug",  "log-opts": {    "max-size": "10m",    "max-file": "3"  }}systemctl daemon-reloadsystemctl restart docker

docker-swam集群更新方式:sudo docker service update --log-driver json-file --log-opt max-size=1m --log-opt max-file=3 pbblyrmsof5t

参考:https://docs.docker-cn.com/engine/admin/logging/json-file/#usage

收藏 打印