docker Command

Docker 查看容器日志与状态命令

使用 docker logs、inspect、stats、events 排查容器启动失败或运行异常的常用命令,docker ps -a 看退出状态,docker logs --tail 200 -f --since 读取近期日志,docker inspect 展开端口、挂载和环境变量,stats 看资源占用。

先 docker ps -a 看退出状态,再 docker logs --tail 200 读应用错误,必要时 inspect 查看端口、挂载和环境变量。

适用环境Linux / Docker / Docker Compose
风险等级
最后验证2026-06-30
建议权限普通用户 + sudo

Scenario

什么时候用这组命令

这组命令适合在处理“Docker 查看容器日志与状态命令”时作为第一轮检查模板。使用时先替换占位符,再在目标机器或目标 namespace 中执行,避免在错误环境里得到误导结论。

Input

你需要先准备什么

  • 先确认问题发生在镜像拉取、容器启动、容器内服务监听,还是宿主机/外部访问。
  • 记录 docker ps、docker logs 和 docker inspect 的同一时间窗口,避免状态已变化后误判。
  • 区分 Docker 网络、宿主机防火墙、云安全组和应用自身监听地址。

Risk Notes

执行风险

  • 不要一上来 docker system prune,先确认是否有需要保留的停止容器、卷或构建缓存。
  • 不要把 restart: always 当成稳定性方案,它可能掩盖启动失败的根本原因。
  • 不要在容器内使用 systemd 作为入口进程,除非使用特权模式或专门的基础镜像。

Commands

命令详解

命令 1: 检查 Docker 状态

用于确认容器运行状态、端口映射和网络配置。inspect 能看到 HostConfig.PortBindings 和 NetworkSettings 等关键字段。

  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 1: 检查 Docker 状态
docker ps -a

命令 2: 检查 Docker 状态

用于读取容器 stdout/stderr。先限制 --tail,避免大日志刷屏,再结合退出码和 events 判断是否反复重启。

  • 先替换尖括号占位符,不要原样执行。
  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 2: 检查 Docker 状态
docker logs --tail 200 <container>

命令 3: 检查 Docker 状态

用于读取容器 stdout/stderr。先限制 --tail,避免大日志刷屏,再结合退出码和 events 判断是否反复重启。

  • 先替换尖括号占位符,不要原样执行。
  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 3: 检查 Docker 状态
docker logs -f --since 10m <container>

命令 4: 检查 Docker 状态

用于确认容器运行状态、端口映射和网络配置。inspect 能看到 HostConfig.PortBindings 和 NetworkSettings 等关键字段。

  • 先替换尖括号占位符,不要原样执行。
  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 4: 检查 Docker 状态
docker inspect <container>

命令 5: 检查 Docker 状态

用于补充“Docker 查看容器日志与状态命令”的排查证据链。docker 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。

  • 先替换尖括号占位符,不要原样执行。
  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 5: 检查 Docker 状态
docker stats <container>

命令 6: 检查 Docker 状态

用于补充“Docker 查看容器日志与状态命令”的排查证据链。docker 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。

  • 确认命令运行位置正确。
  • 保留关键输出,方便和修复后对比。
命令 6: 检查 Docker 状态
docker events --since 10m

Workflow

建议执行顺序

按顺序执行,不要跳过确认类命令

先用只读命令确认状态,再执行会改变状态的命令。先 docker ps -a 看退出状态,再 docker logs --tail 200 读应用错误,必要时 inspect 查看端口、挂载和环境变量。

  • 确认容器是否仍在运行,还是已经 Exited。
  • 查看最近日志,避免整段日志刷屏。
  • 用 inspect 确认镜像、命令、端口、卷和环境变量。
  • 资源异常时用 stats 看 CPU/内存/网络 IO。
  • 短时间反复重启时用 events 查看生命周期事件。
按顺序执行,不要跳过确认类命令
docker ps -a
docker logs --tail 200 <container>
docker logs -f --since 10m <container>

把命令输出变成结论

命令本身不是结论。每次执行后要回答:目标是否存在、状态是否异常、异常是否能解释用户看到的现象。

  • 记录关键字段,而不是整屏复制
  • 把正常路径和异常路径输出对比
  • 输出为空也要解释:是确实没有,还是权限/过滤条件不对
把命令输出变成结论
docker logs --tail 200 <container>
docker logs -f --since 10m <container>
docker inspect <container>

执行前替换占位符并控制影响范围

包含 <service>、<pod>、<namespace>、<pid>、<container> 的命令必须先替换。涉及 reload、restart、KILL、vacuum、prune 的命令要确认影响范围。

  • 优先在测试环境或只读模式验证
  • 生产执行前保留回滚路径
  • 把最终可用命令写入工单或 runbook
执行前替换占位符并控制影响范围
docker stats <container>
docker events --since 10m

Verification

怎么判断命令有效

  • 命令已在正确机器、正确用户、正确 namespace 或正确仓库下执行。
  • 输出能支撑明确判断:正常、异常、权限不足、目标不存在或需要下一跳排查。
  • 对有副作用的命令,已确认执行窗口、影响范围和回滚方式。

Prevention

沉淀到日常流程

  • Compose 文件里显式写健康检查、资源限制和必要环境变量,确保容器启动后能自动恢复。
  • 上线前用 docker compose config 展开最终配置做审查,避免遗漏或覆盖了错误的配置值。
  • 为镜像使用固定 tag 或 digest,避免 latest 漂移导致部署了非预期的版本。
  • 建立容器日志轮转策略,防止日志无限增长撑满磁盘分区。

常见问题

docker logs 看不到日志怎么办?

应用可能写到文件而不是 stdout/stderr,或日志驱动不是默认 json-file,需要检查容器 logging 配置。

Long-tail SEO

你可能正在搜索这些报错

下面这些错误原文、场景词和中英文搜索词,都是排查同类问题时常见的入口。

  • docker 查看容器日志
  • docker logs 实时跟踪
  • docker logs --tail 最后几行
  • docker-compose logs 查看日志
  • docker 容器日志路径
  • docker logs 时间过滤