ocker 日志相关的操作主要涉及查看、管理和理解容器的日志输出。以下是一些常用的 Docker 日志命令和选项:
查看日志
docker logs container_id_or_name
:获取指定容器的日志。docker logs -f container_id_or_name
:跟随(实时输出)容器的日志。docker logs --tail "all" container_id_or_name
:获取容器所有可用的日志。
日志选项
-f
,--follow
:跟随最新的日志输出。--tail
:指定输出的日志行数或使用"all"
来获取所有日志。--since
:显示自指定时间以来的日志,可以是时间戳或相对时间(如1h
表示1小时前)。--until
:显示直到指定时间的日志。-t
,--time
:显示每行日志的时间戳。--timestamps
:显示每行日志的具体时间戳(比-t
更详细)。
示例
-
获取容器启动以来的所有日志:
docker logs container_id
-
实时查看容器日志输出:
docker logs -f container_id
-
获取容器最后10行日志:
docker logs --tail=10 container_id
-
获取带有时间戳的日志:
docker logs -t container_id
-
获取从1小时前到现在的日志:
docker logs --since=1h container_id
-
获取直到1小时前的所有日志:
docker logs --until=1h ago container_id
-
获取特定时间点以来的日志(需要指定日期和时间):
docker logs --since="2023-10-10T14:48:00" container_id
日志管理
Docker 容器的日志可以由 Docker 守护进程管理,也可以通过第三方工具来管理。Docker 守护进程提供了一些日志驱动程序,如 json-file
、syslog
、journald
、gelf
等,可以通过 dockerd
的 --log-driver
选项进行配置。
配置日志驱动
-
查看可用的日志驱动:
docker info | grep LogDriver
-
设置默认的日志驱动程序:
dockerd --log-driver=syslog
-
在运行容器时指定日志驱动:
docker run --log-driver=syslog your-image
注意事项
- 日志文件默认存储在
/var/lib/docker/containers/<container_id>/
目录下,文件名为<container_id>-json.log
,当使用json-file
日志驱动时。 - 容器停止后,日志文件可能会被删除,除非你使用了数据卷或配置了日志旋转。
- 使用
-f
选项时,如果容器停止,日志流将中断。
通过这些命令和选项,你可以有效地管理和查看 Docker 容器的日志,以便于监控和调试容器化应用。