在Docker容器运维过程中,查看容器日志是排查服务异常、确认运行状态的核心操作,docker logs命令是官方提供的日志查看工具,默认会输出容器从启动到当前的所有日志内容。当容器运行时间较长、日志量较大时,直接执行该命令会输出大量冗余信息,很难快速找到最新的运行记录,此时就需要通过参数控制输出最后几行日志。

docker logs命令基础语法
docker logs命令的基本语法格式如下,其中容器标识可以是容器的ID或者容器名称:
docker logs [参数] 容器标识
显示最后几行的核心参数
要显示容器的最后几行日志,需要使用--tail参数(也可以简写为-n),该参数用于指定输出的日志行数,具体说明如下:
| 参数 | 说明 | 示例 |
|---|---|---|
| --tail N | 输出容器日志的最后N行,N为正整数 | --tail 20 表示输出最后20行 |
| -n N | --tail的简写形式,功能完全一致 | -n 50 表示输出最后50行 |
实际操作示例
示例1:查看指定容器最后10行日志
假设当前有一个名为nginx_container的容器正在运行,要查看它最近产生的10行日志,执行以下命令:
# 使用--tail参数 docker logs --tail 10 nginx_container # 使用简写-n参数,效果相同 docker logs -n 10 nginx_container
示例2:查看最后50行日志并实时跟踪更新
如果需要同时查看最后几行日志,并且持续输出后续新增的日志,可以结合-f(--follow)参数使用,示例如下:
# 查看最后50行日志,并且实时跟踪新日志 docker logs --tail 50 -f nginx_container
执行该命令后,终端会先输出最后50行历史日志,之后容器产生新的日志时会实时追加输出,按下Ctrl+C可以退出跟踪模式。
示例3:查看已停止容器的最后几行日志
docker logs命令同样支持查看已经停止的容器的日志,操作方式和运行中的容器一致,示例如下:
# 查看已停止容器my_app的最后20行日志 docker logs --tail 20 my_app
注意事项
- 如果容器是通过
docker run启动时添加了--log-driver=none参数,那么docker logs命令将无法获取到任何日志,此时需要调整容器的日志驱动配置。 - --tail参数指定的行数仅针对当前存储的日志内容,如果容器日志已经被日志轮转策略清理,可能无法获取到足够的历史行数。
- 如果不确定容器的名称或ID,可以先执行
docker ps -a命令查看所有容器的列表,找到目标容器的标识后再执行日志查看命令。
扩展:结合时间戳查看日志
如果需要同时查看日志的产生时间,可以加上-t(--timestamps)参数,示例如下:
# 查看最后30行日志,同时显示每条日志的时间戳 docker logs --tail 30 -t nginx_container
输出的日志内容会在每行开头附带日志生成的时间,方便用户核对日志产生的时间节点。