docker日志相关
本文最后更新于 2025年2月14日 凌晨
Docker 容器的日志管理是运维工作中的重要一环。本文将全面介绍 Docker 日志的查看方法、存储位置、清理技巧以及日志轮转配置,帮助你更好地掌握容器日志管理,避免日志占用过多磁盘空间。
查看日志
Docker 日志是运行中容器的控制台输出,来源于容器内进程的标准输出(stdout)和标准错误(stderr)。
使用以下命令可以查看特定容器的日志,默认会显示容器启动以来的所有日志:
1 |
|
示例:
1 |
|
添加 -f
参数可以实时跟踪日志输出:
1 |
|
当容器日志过多时,可以使用 --tail
参数指定只显示最后的 N 条日志:
1 |
|
如果需要查看特定时间段的日志,可以使用 --since
和 --until
参数:
1 |
|
日志存储位置
Docker 会将容器的日志内容保存到磁盘上。随着时间的推移,日志文件可能会变得非常大,导致硬盘空间被占满。例如,一个运行了一年的容器,其日志文件可能已经达到 5GB。如果不进行清理,VPS 的硬盘空间可能会被悄悄耗尽。
容器的日志文件保存在 /var/lib/docker/containers
目录下,每个容器以其容器 ID 为子目录名。注意,从该目录开始的所有子目录需要管理员权限才能访问。
查看容器目录:
1 |
|
示例输出:
1 |
|
您可以使用 docker ps
命令列出所有容器,来查看容器名称与容器 ID 的对应关系。也可以使用 docker inspect
获取容器的详细信息:
1 |
|
进入对应容器的目录后,其中以 <容器ID>-json.log
命名的文件就是该容器的日志文件:
1 |
|
示例输出:
1 |
|
如果在 /var/lib/docker/containers
目录中没有找到日志文件,可以通过以下命令查看日志文件路径:
1 |
|
要查看所有日志文件的大小,可以使用以下命令:
1 |
|
示例输出:
1 |
|
清理日志
重启容器并不会清空日志文件,因为日志文件只有在被删除并重新创建时才会重置。
如果您使用 1Panel,可以进入容器管理页面,找到对应容器的日志选项,然后点击“清空日志”按钮。
在命令行中,可以使用 truncate
命令清空日志文件:
1 |
|
清空所有容器的日志文件:
1 |
|
为了防止日志文件过大,可以配置 Docker 的日志轮转功能。编辑 Docker 的配置文件:
1 |
|
添加或修改以下内容:
1 |
|
上述配置表示,当当前日志文件达到 10MB 时,Docker 会将其轮转(重命名并创建新的日志文件)。最多保留 10 个轮转日志文件(包括当前文件在内共 11 个),超过数量的旧日志文件将自动删除。
保存配置文件后,重启 Docker 服务使新配置生效:
1 |
|
通过以上方法,您可以有效地管理 Docker 容器的日志,避免日志文件过大占用磁盘空间。