您的位置:

Docker查看日志指南

Docker日志是用于记录运行Docker的容器信息的重要工具。 当您监视容器执行时,日志是不可或缺的。Docker提供了许多选项来查看日志,从而有助于开发,调试和故障排除。本篇文章将介绍Docker查看日志的不同方法,以及如何使用这些方法来监视和诊断容器。

一、Docker查看日志的命令

在Linux操作系统中,使用容器时可以通过docker logs命令查看容器运行日志。这个命令简洁易用,是一个基本且常用的查看Docker日志的方式。
docker logs [OPTIONS] CONTAINER
该命令的语法是docker logs加上相应的选项和容器ID或名称,例如:
docker logs -f CONTAINER
该命令将实时输出容器的日志。如果您需要在容器运行时查看日志,则可以使用-f选项。

二、查看Docker镜像运行日志

Docker容器日志默认情况下被发送到标准输出(STDOUT)和标准错误(STDERR)设备。 使用docker logs命令可以重定向这些输出,以便更好地监视和跟踪它们。在以下示例中,我们展示了如何查看一个Docker镜像的运行日志。 首先,使用docker run命令在容器中运行镜像:
docker run -d --name mynginx nginx
接下来,查看容器运行日志:
docker logs mynginx
输出:
172.17.0.1 - - [16/Nov/2021:01:29:22 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-"
172.17.0.1 - - [16/Nov/2021:01:30:02 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-"
172.17.0.1 - - [16/Nov/2021:01:30:03 +0000] "GET /favicon.ico HTTP/1.1" 200 612 "http://localhost/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" "-"

三、Docker查看日志并保存

通过运行docker logs命令,您可以将Docker容器的日志发送到标准输出。如果我们要将Docker容器的日志存储在文件中,我们可以使用以下命令:
docker logs CONTAINER > /path/to/logfile.log
此命令将容器日志输出到指定路径的文件中。 您还可以使用tee命令将容器日志同时输出到STDOUT和文件中:
docker logs CONTAINER | tee /path/to/logfile.log

四、Docker查看日志路径

容器的日志路径默认为/var/lib/docker/containers/ / -json.log。 若要找到容器的日志路径,请使用以下命令:
docker inspect --format='{{.LogPath}}' CONTAINER
输出:
/var/lib/docker/containers/a5e1a0f3cd8a1ebfc2866300c4bf7ea91e9a654ef55b9d607105bbe3d6444f4a/a5e1a0f3cd8a1ebfc2866300c4bf7ea91e9a654ef55b9d607105bbe3d6444f4a-json.log

五、Docker查看日志文件命令

在Docker中,我们可以使用less命令查看指定的日志文件,例如:
docker exec -it CONTAINER_ID /bin/sh
less /var/log/messages
该命令会打开容器的shell,并查看一个名为messages的日志文件。

六、Docker查看日志目录

要在容器中列出具有多个日志文件的目录,请运行以下命令:
docker exec CONTAINER ls /var/log
该命令列出了容器中/var/log目录的内容。

七、Docker查看日志的工具

有多种工具可以用于查看Docker日志文件,如docker-compose logs以及第三方工具如Logspout、Fluentd、Elasticsearch等。 Logspout是一种工具,可以将Docker容器的日志集中到一个地方,并将它们转发到一个外部的日志聚合器(如Logstash或Fluentd)。Fluentd是一款支持自定义插件的开源数据收集器,它可收集、传输和存储日志、事件和多种其他数据。 如果您使用Elasticsearch作为日志聚合工具,可以使用Kibana进行可视化查询和分析。

八、Docker查看日志显示行

您可以使用以下命令显示日志文件中特定行:
cat filename.txt | sed -n '1,10p'
输出前10行的日志文件内容。 如果您要查找特定错误或事件的记录,请使用以下命令:
docker logs CONTAINER | grep "error"
将输出任何包含“error”字符的行。

九、Docker查看日志怎么退出

当您在Docker日志中查看完毕并想要退出时,您可以使用CTRL+C退出docker logs命令。

十、Docker查看SVN日志

Docker容器通常使用版本控制工具来存储代码和项目。 如果您的代码存储在Subversion(SVN)版本控制系统中,则可以使用以下命令从Docker容器中查看SVN日志:
docker exec CONTAINER svn log [-v] [-r arg1:arg2] URL
其中-v是可选的,-r arg1:arg2用于范围版本。如果您的访问仅需查询SVN式URL,则可以省略-r选项。

十一、总结

通过本文,我们探讨了Docker日志的不同方法和工具,以及如何使用它们来监视和调试容器,包括了:使用docker logs命令查看日志;查看Docker镜像运行日志;Docker查看日志并保存;查看Docker中日志文件的路径和位置;查看Docker中日志文件;Docker查看日志目录;Docker查看日志工具;Docker查看日志的显示行数;Docker查看日志如何退出;以及查看SVN操作的Docker日志。这些方法和工具将帮助您更好地监视和诊断Docker容器。