查容器状态和日志核心是docker ps与docker logs命令:docker ps -a查看所有容器,docker logs -f实时跟踪日志,配合--tail、--since和grep精准定位问题,注意日志大小限制与驱动配置。

查容器状态和日志,核心就两个命令:docker ps 看运行中容器,docker logs 看输出内容。用对参数才能快速定位问题。
查看容器列表(含停止的)
默认 docker ps 只显示正在运行的容器。想看全量,加 -a 参数:
-
docker ps -a:列出所有容器(包括已退出的) -
docker ps -aq:只输出容器 ID,适合脚本批量处理 -
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}":自定义列格式,更清晰
实时跟踪容器日志
服务启动后没反应?先盯住日志流:
-
docker logs -f:持续输出新日志(类似tail -f) -
Ctrl+C可退出跟踪,不影响容器运行 - 如果容器刚重启过,加
--since "5m"查最近 5 分钟日志,避免刷屏
查历史日志与错误片段
容器已退出或想翻旧记录:
-
docker logs --tail 100:只看最后 100 行 -
docker logs --since "2024-06-10T14:00:00":查指定时间之后的日志 - 配合
grep快速找关键词:docker logs | grep ERROR
注意日志驱动和大小限制
默认日志存在本地 JSON 文件,但可能撑爆磁盘:
- 启动容器时用
--log-opt max-size=10m --log-opt max-file=3限制单个日志大小和保留份数 - 全局配置在
/etc/docker/daemon.json中设置"log-driver": "json-file"和"log-opts" - 生产环境建议用
syslog或fluentd等外部驱动,避免日志堆积
不复杂但容易忽略细节,比如忘记加 -f 就以为没日志,或者没清空旧容器导致 ps 列表太长。动手前先确认容器名和状态,再选对应命令。











