首页/云/Docker 容器速查/退出码 125:docker run 自身失败
容器排障52 条

退出码 125:docker run 自身失败

125 表示 Docker 客户端/守护进程层失败,容器根本没跑起来:常见于 daemon 不可达、参数非法、端口占用、镜像不存在。

Docker 容器速查云更新于 2026-10-13

退出码 125 的含义

退出码 125 表示 Docker 客户端或守护进程层失败,容器根本没跑起来,常见于守护进程不可达、参数非法、端口已被占用、镜像不存在。它与 126、127 的区别在于:容器命令压根没有执行。

基本信息

含义docker run 命令本身失败
与 126/127 的区别125 是 Docker 层错误,容器命令未执行
典型原因守护进程不可达、参数非法、端口占用、镜像缺失
排查入口命令返回的报错原文与守护进程日志
状态特征docker ps -a 里通常没有对应容器

典型使用场景

  • 脚本里 docker run 返回 125 时定位到 Docker 层而非应用
  • 端口冲突排查:宿主上已有服务占用同一端口
  • 镜像名或标签拼错导致拉取失败时的判断
  • 守护进程未启动或接口权限异常时的识别
  • CI 里区分环境问题与应用缺陷

复现与判断

复现与判断
docker run -d --name bad -p 8080:80 nginx:1.27    # 端口被占用时返回 125
docker run --rm nonexist/image:1.0                 # 镜像不存在时返回 125
docker inspect -f '{{.State.ExitCode}}' bad 2>/dev/null || echo 容器未创建
journalctl -u docker -n 30 --no-pager               # 守护进程侧线索

退出码对照

退出码含义判断要点
125Docker 命令本身失败容器未创建或未启动
126命令存在但无法执行容器已启动,命令不可执行
127容器内找不到命令容器已启动,命令不存在
1 或其他应用自行返回属于业务层结果
125 场景下 docker ps -a 里通常没有对应容器,定位重心在命令输出与守护进程日志。
把 125 当应用错误去翻容器日志会徒劳无功,先逐字读命令返回的报错原文。
脚本里 docker run 失败后继续判断容器状态,会把 125 误判成启动后又退出,返回码要先判断。
端口占用是最常见的诱因之一:宿主上已有服务或残留容器都会造成冲突,先确认监听情况。
不同版本对同类错误的返回码可能略有差异,脚本里最好同时检查退出码与错误输出内容。

易错点

  • 把 125 当应用错误去翻容器日志会徒劳无功,先逐字读命令返回的报错原文
  • 脚本里 docker run 失败后继续判断容器状态,会把 125 误判成启动后又退出
  • 端口冲突时只改容器内端口不改映射,问题依旧存在,要定位实际占用方
  • 只依赖退出码判断而忽略命令输出,容易漏掉镜像名拼错这类明显问题

数据来源与参考

  • Docker 官方文档:docker run Exit status(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌