怎么排查 Docker 容器重启频繁耗尽服务器资源

星萱大大_5666

星萱大大_5666

2026-10-04

371人浏览

原创

容器频繁重启主因是退出码137(OOMKilled),表明被内核OOM Killer强制终止;需结合dmesg日志、free -h和df -h排查真实内存与磁盘瓶颈,禁用自动重启策略以暴露根因。

容器频繁重启本身就会加剧资源消耗,尤其当它反复拉起又崩溃时,会持续占用 cpu、内存和磁盘 i/o。真正耗尽服务器资源的,往往不是单次重启,而是背后未被发现的“根因循环”——比如内存泄漏导致 oom 被杀,再重启,再泄漏,再被杀。

看退出码,锁定最可疑的终止原因

退出码是第一线索,直接反映容器为何停下:

  • 137:几乎可以确定是被内核 OOM Killer 杀掉的(SIGKILL),不是应用自己退出。此时重点查内存是否真的超限,而不是只看容器 limit 设置
  • 143:收到 SIGTERM 后没及时退出,常见于健康检查失败或应用未正确处理信号,可能伴随 CPU 占用高、响应慢
  • 1 或其他非零值:应用启动阶段就报错退出,比如配置缺失、依赖服务连不上、权限拒绝等,这类问题通常日志里有明确提示

执行:docker inspect 容器名 | grep -A 5 "State",重点关注 ExitCode 和 OOMKilled 字段。

查内核日志,确认是否真被 OOM 杀死

即使 OOMKilled: false,也不能排除 OOM。Docker inspect 的这个字段有时不准确,必须看真实内核记录:

Docker Compose Optimizer
Docker Compose Optimizer

优化 Docker Compose 配置,适用于开发和生产环境——审计服务、网络、卷、健康检查和资源管理。

下载
  • 运行 dmesg -T | grep -i "killed process"
  • 若输出中出现类似 Killed process 12345 (your-container-name),并带 Out of memory,就是铁证
  • 同时注意后面跟着的 anon-rss 值(实际物理内存占用),它比容器 limit 更真实反映应用内存水位

盯住宿主机整体资源,别只看容器自身

容器频繁重启常是结果,不是原因。资源耗尽往往是系统级瓶颈触发的连锁反应:

  • 用 free -h 看内存:关注 available 列,不是 free;如果 available 长期低于 500MB,说明系统已吃紧
  • 用 df -h 看磁盘:/var/lib/docker 所在分区满会导致容器无法写日志、无法创建新层,间接引发异常退出
  • 用 docker stats --no-stream 看所有容器实时资源:找出长期高 CPU(>80%)或内存持续上涨的“嫌疑容器”

临时禁用重启策略,让错误“停下来”

restart: always 或 unless-stopped 会让容器一退出就立刻重试,掩盖原始错误。停掉它,才能看清第一次失败时发生了什么:

  • 如果是 docker-compose 启动,注释掉服务下的 restart 行,然后 docker-compose down && docker-compose up
  • 如果是 docker run 启动,删掉 --restart 参数,重新运行
  • 此时容器失败后会卡在 Exited (X) 状态,你就可以放心查日志、进容器调试、甚至用 strace 追踪系统调用

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3292

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3016

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5692

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习