「Docker 学习系列」之 查看 Docker 容器日志

125 阅读1分钟

🙏废话不多说系列,直接开整🙏

女11.webp


方法一:获取容器日志文件位置

获取指定日志文件所在位置

# 1.获取docker指定容器下的日志文件的路径
$ sudo docker inspect [容器名称] | grep log
>        "LogPath": "/var/lib/docker/containers/a3e9b0af6ebee9336a6e8bcece86c823389765959eeee62c2ddd943e9a16fd5d/a3e9b0af6ebee9336a6e8bcece86c823389765959eeee62c2ddd943e9a16fd5d-json.log",


# 2.显示读取日志文件的操作命令(例如下示范:)
sudo cat /var/lib/docker/containers/8ecf74bdd102b74f7d068f7384b5d51d39165b2f90f33d1665dda9caca77c831/8ecf74bdd102b74f7d068f7384b5d51d39165b2f90f33d1665dda9caca77c831-json.log

方法二:实时监听日志文件内容

实时监听容器的日志文件内容。

(0)docker日志命令

image.png

# 根据上述命令格式,举例如下:
# 1. 查看指定时间后的日志,只显示最后 100 行
$ docker logs -f -t --since="2018-10-10" --tail=100 [CONTAINER_ID]

# 2.查看最近30分钟内的日志
$ docker logs --since 30m [CONTAINER_ID]

# 3.查看某时间之后的日志
$ docker logs -t -since="2018-10-10T12:23:37" [CONTAINER_ID]

# 4.查看某时间段内的日志
$ docker logs -t --since="2020-10-10T13:13:13" --until="2020-10-10T13:30:30" [CONTAINER_ID]
(1)显示所有日志
# 显示某个容器的所有日志
$ docker logs [OPTIONS] <CONTAINER_ID>
# 显示 docker-compose 启动的所有容器的日志
$ docker-compose logs
(2)显示实时日志

效果和 Linux 中的 【tail -f filename】 一样,可以把最新内容刷新显示到屏幕上。

$ docker logs -f <CONTAINNER>
# 示例1 : 使用容器名称 来替换<CONTAINER>
$ docker logs -f industryapp_web
# 示例2 : 使用 容器ID 来替换<CONTAINER>
$ docker logs -f a3e9b0af6ebe
(3)使用 tail 查看日志指定行数

效果和 Linux 中的 【tail -f 20 filename】 一样,显示最后 20 行的内容。

$ docker logs --tail 20 <CONTAINER>

# 示例1 : 使用容器名称 来替换<CONTAINER>
$ sudo docker logs --tail 20 industryapp_web
# 示例2 : 使用 容器ID 来替换<CONTAINER>
$ sudo docker logs --tail 20 a3e9b0af6ebe

# 获取日志命令的适用
sudo docker logs --help
# 获取指定日期后的1000行日志
sudo docker logs app_web 
sudo docker logs --since="2020-06-08T10:00:00" --tail "1000" app_web
sudo docker logs --since="2020-06-08T10:00:00" --tail "1000" app_web | grep ERROR
(4)使用 grep 过滤日志
# 例如查找所有包含 “error” 的日志
$ sudo docker logs | grep error

# 显示最新两行错误日志
$ sudo docker logs industryapp_web | grep error | tail -n 2

# 实时监听指定服务的日志
$ sudo docker logs -f industryapp_web

# 查看指定容器日志从"2022-05-18T20:39:00"开始出现的包含错误信息的日志
$ sudo docker logs -f --since="2022-05-18T20:39:00" industryapp_web | grep error

# 查看指定容器日志从"2022-05-18T20:39:00"开始到 “2022-05-19T20:39:00” 出现的包含错误信息的日志
$ sudo docker logs -f --since="2022-05-18T20:39:00" --until="2022-05-19T20:39:00" industryapp_web | grep error

附录

(1)官方日志帮助命令文档
$ docker logs --help

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --help           Print usage
      --since string   Show logs since timestamp
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps

🙏至此,非常感谢阅读🙏

女11.webp