Docker中容器日志查看与监控的5个必备排错命令

 更新时间:2025年11月10日 09:42:01   作者:努力搬砖的咸鱼  
Docker 提供了强大的监控与日志工具,只要掌握几个关键命令,你就能像侦探一样,快速找到问题根源,本文为大家整理了5 个必备排错命令,希望对大家有所帮助

概述

你有没有遇到过这种情况:

  • 访问不了网站,但容器明明在运行?
  • 应用启动失败,却不知道哪里错了?
  • 想看日志,却无从下手?

Docker 提供了强大的监控与日志工具,只要掌握几个关键命令,你就能像侦探一样,快速找到问题根源

为什么需要监控与日志

容器是“黑盒”——你无法像传统服务器那样直接登录查看进程或文件。所以,我们必须依赖:

  • 日志(Logs):查看应用输出、错误信息
  • 状态(Status):了解容器是否运行、退出原因
  • 资源使用(CPU/内存):判断是否资源不足
  • 内部运行情况:进入容器调试

下面这 5 个命令,就是你的“排错工具箱”

5 个必备排错命令

1.docker ps—— 查看容器状态

docker ps

查看正在运行的容器:

CONTAINER ID   IMAGE         COMMAND       CREATED        STATUS        PORTS       NAMES
abc123         nginx:alpine  "/entrypoint.sh"  10 minutes ago Up 10 mins    0.0.0.0:80->80/tcp  web-server

如果没看到你的容器,加 -a 查看所有(包括已停止的):

docker ps -a

关注 STATUS 列:

  • Exited (1):表示容器启动失败,退出码非 0
  • Restarting:可能配置了重启策略,但应用一直崩溃

2.docker logs—— 查看容器日志(最常用!)

这是最重要的排错命令,能告诉你应用到底发生了什么。

docker logs <容器名或ID>

例如:

docker logs web-server

实用选项:

选项作用
-f实时跟踪日志(类似 tail -f)
--tail 50只看最后 50 行
-t显示时间戳
# 实时查看日志
docker logs -f web-server

# 查看最近 100 行
docker logs --tail 100 web-server

提示:应用启动失败时,第一时间看 logs,通常错误信息就在这里

3.docker inspect—— 查看容器详细信息

当你需要深入了解容器的配置时,用它。

docker inspect <容器名>

它会返回一个巨大的 JSON,包含:

  • IP 地址
  • 挂载的卷
  • 环境变量
  • 网络配置
  • 启动命令
  • 退出原因(如果容器已停止)

快速查看 IP:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web-server

查看退出状态:

docker inspect -f '{{.State.Error}}' failed-container

4.docker stats—— 实时监控资源使用

怀疑容器卡顿、内存不足?用它看 CPU 和内存占用。

docker stats

输出:

CONTAINER   CPU %   MEM USAGE / LIMIT   MEM %   NET I/O     BLOCK I/O
web-server  0.5%    10MiB / 1.9GiB    0.5%    1.2kB / 0B    0B / 0B
db          2.1%    150MiB / 1GiB     15.0%   ...

如果某个容器 MEM % 接近 100%,很可能被系统 OOM Kill(内存溢出终止)。

5.docker exec—— 进入容器内部调试

有时候你需要“进到容器里”看看文件、运行命令

# 进入容器的 shell
docker exec -it web-server sh

常见用途:

  • 检查配置文件是否存在
  • 测试网络连通性(ping, curl
  • 查看目录内容(ls /app
  • 手动运行应用命令测试

注意:生产环境慎用,避免误操作

实战排错流程

当你的应用“打不开”时,按这个顺序排查:

  • docker ps -a → 看容器是否在运行,退出码是什么
  • docker logs <容器名> → 看是否有报错(如端口冲突、依赖缺失)
  • docker inspect <容器名> → 检查端口映射、环境变量是否正确
  • docker stats → 看是否资源耗尽
  • docker exec -it <容器名> sh → 进入容器手动测试

大多数问题,都能通过这 5 步解决

Docker Compose 怎么排错

如果你用 docker-compose.yml,命令类似:

原命令Compose 版本
docker logs webdocker compose logs web
docker exec web shdocker compose exec web sh
docker psdocker compose ps

在项目目录下运行,自动识别 docker-compose.yml

总结

容器出问题不可怕,关键是知道怎么查。记住这 5 个核心命令:

  • docker ps —— 看状态
  • docker logs —— 看日志(最重要!)
  • docker inspect —— 看细节
  • docker stats —— 看资源
  • docker exec —— 进去调试

掌握它们,你就能快速定位 90% 的容器问题,不再“一脸懵”

到此这篇关于Docker中容器日志查看与监控的5个必备排错命令的文章就介绍到这了,更多相关Docker容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论