c语言编程笔录

首页 >   > 笔记大全

笔记大全

docker如何查看运行容器日志

更新时间:2023-11-07

背景

在容器化的应用中,日志的处理是至关重要的一个环节。对于处理日志这个问题,Docker 给出了一个相对清晰的解决方案,即将应用的日志统一输出到控制台,然后借助 Docker 记录控制台输出的特性来收集应用的日志信息。在 Docker 中,我们使用以下命令来查看容器的日志输出:

docker logs [OPTIONS] CONTAINER

使用 docker logs 命令查看日志

Docker 的日志命令比较简单,直接使用 docker logs 命令并加上容器 ID 即可,如下所示,将列出某个容器的全部日志内容:

docker logs container_name/container_id

与 docker logs 命令相关的参数比较少,如下所示:

--details         显示额外的信息。
-f, --follow      在日志末尾加上,输出新的日志信息
--since string    输出指定时间段之内的日志。
--tail string     输出最新的 n 条日志,默认为所有日志。
--timestamps, -t  显示时间戳
--until string    输出指定时间段之前的日志。

举个例子,如果我们想要查看刚才启动的容器的全部日志信息,只需要输入以下命令即可:

docker logs app_container

使用 docker attach 命令实时查看日志

如果需要实时查看容器的日志信息,可以使用 docker attach 命令,它的作用是将当前终端连接到某个运行的容器上,这样就可以实时查看容器的日志输出了。但是需要注意,该命令会直接将控制台输出的内容打印出来,而不是像 docker logs 命令那样记录日志,因此不适合长时间持续观察日志,容易因为控制台输出不便导致丢失关键信息。

docker attach [OPTIONS] CONTAINER

比较常用的参数有:

--detach-keys    退出 detach 模式的快捷键。
--no-stdin       不要将 STDIN 关联到容器中的控制台。
--sig-proxy      代理接收 Ctrl-c 等信号。

如果需要跟随日志,即实时输出容器日志,可以使用 -f 参数。

docker attach -f app_container

总结

在 Docker 中,通过使用 docker logs 或 docker attach 命令都可以查看容器的日志信息。docker logs 命令直接输出 Docker 启动的容器中的日志信息,易于记录和查询,但不支持实时查看;docker attach 命令可以实时查看容器日志输出,在需要快速在终端上查看日志输出时便利。选择何种方式查看日志应该根据具体的使用场景进行考虑,建议在正式环境中使用 docker logs 命令查看容器的日志,以保障日志信息记录实时、高效且完整。