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 命令查看容器的日志,以保障日志信息记录实时、高效且完整。