php 8.5.5 不存在,官方最新稳定版为 php 8.3.x(如 8.3.12),8.4 处于 rc 阶段,8.5 尚未发布;指定 php:8.5.5-apache 等镜像会导致拉取失败并报“manifest not found”,应改用 php:8.3.12-apache 等有效标签。

PHP 8.5.5 目前不存在——这是启动失败最可能的根源。官方 PHP 最新稳定版截至 2026 年 6 月仍是 8.3.x(如 8.3.12),8.4 尚处 RC 阶段,8.5 还未发布。你指定的镜像名(如 php:8.5.5-apache 或 php:8.5.5-cli)根本无法拉取,Docker 会直接报错并拒绝创建容器。
docker run 报 “No such image” 怎么确认是版本问题
运行 docker run --rm php:8.5.5-cli php -v 时若出现:
pull access denied for php, repository does not exist or may require 'docker login'Error response from daemon: manifest for php:8.5.5-cli not found
说明镜像在 Docker Hub php 官方仓库 中不存在。这不是网络或权限问题,而是标签无效。
验证方式:
- 打开浏览器访问
https://www.php.cn/link/00efe3d30e8d51ae61fa5d5c96478a95?tab=tags&page=1&name=8.5—— 搜索结果为空 - 执行
docker pull php:8.5.5-cli,观察是否返回 404 类错误 - 对比有效标签:
docker pull php:8.3.12-cli能成功,php:8.4.0-rc-cli(若有)可能拉取但不稳定
误写 PHP 版本后实际发生的错误流程
Docker 启动失败不是“容器退出”,而是根本卡在镜像拉取/解析阶段,不会生成容器记录:
-
docker ps -a列表里找不到对应容器(STATUS 不会出现Exited (1)) -
docker logs无输出(因为容器没创建成功,日志为空) - 终端直接报错,且错误信息明确含
manifest not found或No such image - 如果用
docker-compose up,会停在Pulling php并报错,不进入构建或启动阶段
怎么选对 PHP Docker 镜像版本
别依赖记忆或文档旧快照,实时查官方源:
- 始终以 Docker Hub php 页面 的
Tags页为准 - 生产环境优先用带小版本号的标签(如
php:8.3.12-apache),避免php:8.3这类浮动标签导致意外升级 - 若需
8.4,目前只能用php:8.4-rc或php:8.4.0RCx-cli(注意 RC 不适合生产) - Alpine 用户额外注意:
php:8.3-alpine3.20是当前主流组合,alpine3.21镜像可能尚未同步所有扩展
例如,把 php:8.5.5-apache 改成 php:8.3.12-apache 后重试,90% 以上能立刻通过镜像拉取关。
其他可能导致“PHP 容器启动失败”的真实原因(排除版本错误后)
一旦确认版本合法但仍失败,再往下排查:
-
docker logs <container_id></container_id>是否输出Cannot load module 'xxx'?—— 扩展启用但未安装(如pdo_mysql缺失) - 自定义
Dockerfile中用了RUN pecl install但没加docker-php-ext-enable?—— 扩展编译了但未激活 - 挂载的
php.ini路径错误或语法有误(如多了一个=)?—— PHP 启动时解析失败,直接退出,ExitCode 1 - 使用
apache镜像却删了/var/www/html或改了DocumentRoot但没建对应目录?—— Apache 启动检查失败 - CLI 镜像误当 Web 镜像用:
php:8.3.12-cli默认没有 Apache/Nginx,php -S也需手动指定端口和路由文件
版本号写错是最隐蔽也最常被忽略的第一步——它不报错在容器内,而是在 Docker 引擎层就拦下了,连日志都没机会生成。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











