当前位置: 首页 > news >正文

Docker 监控与日志:如何排查容器问题

概述

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

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

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
  • 手动运行应用命令测试

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

实战排错流程

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

  1. docker ps -a → 看容器是否在运行,退出码是什么
  2. docker logs <容器名> → 看是否有报错(如端口冲突、依赖缺失)
  3. docker inspect <容器名> → 检查端口映射、环境变量是否正确
  4. docker stats → 看是否资源耗尽
  5. 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 个核心命令:

  1. docker ps —— 看状态
  2. docker logs —— 看日志(最重要!)
  3. docker inspect —— 看细节
  4. docker stats —— 看资源
  5. docker exec —— 进去调试

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

http://www.dtcms.com/a/590642.html

相关文章:

  • 汽车网站建设价格wordpress主题添加一个自定义页面
  • 如何把网站推广出管庄地区网站建设
  • 事务已关闭无法提交(500 错误)
  • 人工智能训练师考试1.1.1
  • 自己做免费网站的视频搭建一个视频网站
  • php网站开发环境配置企业网站建设的基本标准
  • 建电子商务网站注意事项自己怎么做网站免费的
  • 咖啡店网站建设模版上海闵行区邮编
  • 湖南省建设银行网站6大连做网站比较好的公司
  • 三亚做网站多少钱一平方网站建设项目推文
  • 一键安装Claude Code脚本
  • 太平洋保险网站域名建设网站
  • 分类信息网站建设模板wordpress 显示小工具栏
  • 网站不备案做seo没用网站顶部怎么做新浪链接
  • 平台类网站建设胡方案明细wordpress 文章 插件
  • C语言算法入门:从生活到编程的思维转变
  • 硅基计划6.0 JavaEE 肆 网络网络编程
  • 南宁网站建设建站系统wordpress仿微博发文插件
  • 邯郸推广网站建设哪个好济南网站免费制作
  • 在线制作图片热区搜索引擎优化的主题
  • 字符串贪心:字典序 回文 括号
  • 实现AI和BI整合的初步思路和探索
  • 徐州网站关键词各类手机网站建设
  • 做音乐网站赚钱吗中信云做网站
  • 兰州网站建设平台分析指数函数图像
  • 从零掌握U-Net数据集训练:原理到实战的完整指南
  • 石家庄行业网站建设阿里巴巴官网入口
  • 来广营做网站公司游戏平台搭建
  • 【数值分析】12-非线性方程的求根方法-习题(1-8)
  • 焦作网站建设设计公司上海建设工程招投标在什么网站