您的位置:

docker查看容器日志指南

一、使用docker logs命令查看容器日志

docker logs命令可以查看指定容器的日志信息,命令格式为:

docker logs [OPTIONS] CONTAINER
其中,OPTIONS为多个参数选项,可以使用docker logs --help命令查看具体选项。CONTAINER为容器的名称或者容器的ID。

要查看某个容器的日志信息,可以使用docker logs命令,并指定容器的名称或者容器的ID:
docker logs CONTAINER
如果要查看容器中最新的10条日志信息,可以使用-n选项:
docker logs -n 10 CONTAINER

二、指定日志输出格式

可以使用--format选项指定日志文件的输出格式,该选项支持的输出格式包括:json、logfmt、raw、journald、pretty、short、tty;其中,json、logfmt、raw、journald只能在Linux平台上使用。

例如,指定输出格式为json:

docker logs --format json CONTAINER
输出结果为json格式的字符串。

三、指定日志输出时间戳格式

可以使用--timestamp选项指定输出日志信息的时间戳格式,该选项支持的时间戳格式包括:rfc3339、rfc3339nano、unix、unixnano。

例如,指定输出时间戳格式为unix:

docker logs --timestamp unix CONTAINER
输出结果的时间戳为unix格式的时间戳。

四、查看容器内部进程的日志

通过docker logs命令只能查看容器的标准输出和标准错误输出的日志信息,如果要查看容器内部进程的日志信息,可以使用docker exec命令,该命令可以在正在运行的容器中执行命令。

例如,要查看正在运行的容器nginx中nginx进程的日志信息,可以使用以下命令:

docker exec CONTAINER_NAME sh -c 'tail -f /var/log/nginx/access.log'

五、使用docker-compose查看容器日志

在使用docker-compose管理多个容器的时候,可以使用以下命令查看某个容器的日志信息:

docker-compose logs [OPTIONS] [SERVICE...]
其中,OPTIONS为多个参数选项,可以使用docker-compose logs --help命令查看具体选项。SERVICE为服务的名称。

要查看某个服务的日志信息,可以使用docker-compose logs命令,并指定服务的名称:
docker-compose logs SERVICE
如果要查看服务中最新的10条日志信息,可以使用--tail选项:
docker-compose logs --tail 10 SERVICE

六、结合ELK/EFK Stack可视化容器日志

除了使用docker自带的命令和工具查看容器日志外,还可以通过ELK/EFK Stack将容器日志可视化,方便运维人员查看和分析日志信息。

ELK/EFK Stack包括Elasticsearch、Logstash、Kibana(或者Filebeat),可以将日志信息收集、存储、分析和可视化。
其中,Elasticsearch用于存储、检索日志信息;Logstash或者Filebeat用于收集和过滤日志信息;Kibana用于展示和分析日志信息。

通过配置Logstash或者Filebeat收集容器日志信息,并将它们发送到Elasticsearch中,可以通过Kibana查看容器日志信息的Dashboard,包括日志信息的数量、容器的名称、日志的级别等等。