docker 的 registry-mirrors 与 composer 镜像源完全无关,composer install 拉包慢是因为容器内 composer 仍走默认源;必须在容器内通过 composer config -g、挂载配置或 --repository-url 显式设置 composer 自身镜像源。

直接说结论:Docker 本身不内置 Composer 镜像源配置,composer install 拉包慢,是因为 PHP 容器内部的 Composer 还在走默认源(https://repo.packagist.org),和 Docker 的 registry-mirrors 完全无关。必须进容器或构建时改 Composer 自身的配置。
为什么改了 Docker registry-mirrors 没用?
Docker 的 registry-mirrors 只加速镜像拉取(docker pull),不影响容器内运行的任何命令——包括 composer install。后者依赖的是 Composer 的全局或项目级配置,和 Docker daemon 完全隔离。
常见错误现象:
- 明明配好了
https://docker.xuanyuan.me,docker pull php:8.3很快,但docker run --rm -v $(pwd):/app -w /app php:8.3 composer install依然卡在Downloading https://repo.packagist.org/packages.json -
docker info | grep "Registry Mirrors"显示正常,但 Composer 报Connection timed out或极慢
三种生效的 Composer 镜像源配置方式
按使用场景选一种即可,优先推荐前两种:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-
构建时写死(推荐):在
Dockerfile中用composer config -g repo.packagist composer https://packagist.phpcomposer.com或阿里云源https://mirrors.aliyun.com/composer/。这样所有基于该镜像启动的容器都自动生效 -
运行时覆盖(灵活):启动容器时用
-v挂载自定义composer.json或通过环境变量传入配置。例如:docker run --rm -v $(pwd):/app -w /app -e COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/ php:8.3 composer install
-
临时单次指定(调试用):不改任何配置,直接在命令中加
--repository-url:docker run --rm -v $(pwd):/app -w /app php:8.3 composer install --repository-url https://packagist.phpcomposer.com
国内可用的 Composer 镜像源地址(2026年实测)
以下地址均需手动填入,不要加尾部 /,且注意部分已变更或限流:
-
https://mirrors.aliyun.com/composer/(阿里云,需确认账号未被限速) -
https://packagist.phpcomposer.com(腾讯云维护,当前仍稳定) -
https://packagist.mirrors.sjtug.sjtu.edu.cn(上海交大,教育网友好) -
https://packagist.laravel-china.org(Laravel China,基础包同步及时)
⚠️ 已失效或不稳定源(2026年8月确认):https://packagist.jp、https://packagist.org(直连)、https://packagist.cc(返回 403)
验证是否真正生效
别只看 docker info,要进容器里查 Composer 实际行为:
- 执行:
docker run --rm php:8.3 composer config -g repo.packagist
输出应为你的镜像源 URL,不是{"type":"composer","url":"https://repo.packagist.org"} - 拉包时加
-vvv看真实请求地址:docker run --rm -v $(pwd):/app -w /app php:8.3 composer install -vvv 2>&1 | grep "Downloading"
确认 URL 是你配的镜像源,而非repo.packagist.org
最易忽略的一点:很多 PHP 基础镜像(如 php:8.3-cli)默认没装 Composer,得自己 apt install composer 或用官方安装脚本,而这类安装方式往往绕过全局配置——务必在安装后立即执行 composer config -g 设置源。










