在Docker中查看容器的输出和日志信息,可以使用以下几种方式:
1. 查看容器实时日志
使用 docker logs
命令查看容器的标准输出和错误输出:
docker logs <容器ID或名称>
常用选项:
-f
:跟踪日志输出(类似tail -f
)--tail n
:显示最后n
行日志--timestamps
:显示时间戳
示例:
docker logs -f --tail 100 my-container
2. 查看容器运行状态
使用 docker ps
查看正在运行的容器:
docker ps
使用 docker ps -a
查看所有容器(包括已停止的)。
3. 进入运行中的容器
使用 docker exec
进入容器内部查看实时状态:
docker exec -it <容器ID或名称> /bin/bash
然后在容器内查看日志文件(如果应用将日志写入文件)。
4. 查看容器详细信息
使用 docker inspect
查看容器的详细配置和状态:
docker inspect <容器ID或名称>
5. 日志驱动配置
Docker支持多种日志驱动(如json-file、syslog、journald等)。查看当前容器的日志驱动:
docker inspect --format='{{.HostConfig.LogConfig.Type}}' <容器ID或名称>
6. 日志文件位置(json-file驱动)
如果使用默认的 json-file
驱动,日志文件位于:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
(需要root权限访问)
示例:
# 查看容器实时日志
docker logs -f my-app# 查看最近100行日志并显示时间戳
docker logs --tail 100 --timestamps my-app# 进入容器内部
docker exec -it my-app /bin/bash# 查看容器使用的日志驱动
docker inspect --format='{{.HostConfig.LogConfig.Type}}' my-app
注意事项:
- 容器必须使用
docker run -it
或docker run -d
启动才能捕获日志 - 长时间运行的容器日志可能会占用大量磁盘空间,可以通过
docker system prune
清理 - 生产环境建议配置日志驱动(如Elasticsearch、Fluentd等)进行集中管理