6.1 命令 docker logs
的主要功能
容器日志记录是 Docker 应用管理和监控的重要部分。日志可以帮助你跟踪容器的行为,诊断问题,了解容器内部的应用是怎么运行的。这节讲座我们会详细讲解如何使用 docker logs
命令来记录容器日志。
命令 docker logs
的主要功能
命令 docker logs
用于提取和查看容器的日志。它可以:
- 查看容器的标准输出 (stdout) 和标准错误输出 (stderr)。
- 实时过滤和跟踪日志。
- 搜索和分析日志以诊断问题。
6.2 使用docker logs命令
1. 查看容器日志
要查看容器日志,使用以下命令:
docker logs <container_id_or_name>
例子:
docker logs my_container
这个命令将输出容器my_container
的所有日志。
2. 实时跟踪日志
要实时跟踪日志,可以使用-f
(或--follow
)标志:
docker logs -f <container_id_or_name>
例子:
docker logs -f my_container
这个命令会在日志产生时实时显示新日志。
3. 限制输出行数
要限制docker logs
命令输出的行数,使用--tail
标志:
docker logs --tail <number_of_lines> <container_id_or_name>
例子:
docker logs --tail 10 my_container
这个命令会输出容器my_container
的最后10行日志。
4. 从指定时间开始输出日志
要从指定时间开始输出日志,使用--since
标志:
docker logs --since <timestamp> <container_id_or_name>
例子:
docker logs --since 2022-01-01T00:00:00 my_container
这个命令会输出容器my_container
从2022年1月1日开始的日志。
5. 输出某一时间之前的日志
要输出指定时间之前的日志,使用--until
标志:
docker logs --until <timestamp> <container_id_or_name>
例子:
docker logs --until 2022-01-02T00:00:00 my_container
这个命令会输出容器my_container
在2022年1月2日之前的日志。
6.3 使用 docker logs
的例子
例子 1: 应用程序错误诊断
如果你的容器里的应用突然报错结束了,你可以用 docker logs
来诊断原因:
docker logs my_app_container
看日志可以帮你搞清楚出了什么问题以及为什么应用程序出错退出了。
例子 2: 跟踪服务运行
想实时跟踪一个 Web 服务的运行,用 -f
参数:
docker logs -f web_service_container
这个命令让你看到进入 Web 服务的所有新日志。
例子 3: 分析特定时间段的日志
如果你需要分析某一时间段的日志,用 --since
和 --until
参数:
docker logs --since "2023-07-01" --until "2023-07-02" my_app_container
这个命令会输出容器 my_app_container
的 2023 年 7 月 1 日的日志。
6.4 配置 Docker 的日志驱动
Docker 支持多种日志驱动,可以为容器配置这些驱动。主要的日志驱动包括:
-
json-file
: 默认的日志驱动。日志以 JSON 格式保存在文件中。 syslog
: 日志发送到系统日志 (syslog)。journald
: 日志发送到 journald 系统。-
gelf
: 日志发送到支持 GELF (Graylog Extended Log Format) 协议的服务器。 fluentd
: 日志发送到 Fluentd 服务器。
设置日志驱动
要设置日志驱动,可以在启动容器时使用 --log-driver
标志:
docker run --log-driver <driver_name> <container_image>
示例:
docker run --log-driver syslog my_app_image
这个示例使用 syslog 日志驱动启动一个容器。
配置日志参数
可以通过 --log-opt
标志指定日志的参数:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
GO TO FULL VERSION