这是Docker 访问 Docker Hub(registry-1.docker.io)超时引起的,测试镜像加速是否生效(关键验证)
在服务器执行:
docker info | sed -n '/Registry Mirrors/,+5p'
看到:
WARNING: No cpu cfs quota support
Registry Mirrors:
https://docker.xuanyuan.me/
Live Restore Enabled: false
ChatGPT给的方案是把 Caddy 镜像改成 GHCR,然后重新拉起,但是按照它的方案,之前总是在错误中循环,把GPT的方案发给谷歌AI,这样回复的:
你提供的 docker info 输出信息显示,你的镜像源配置已经生效了(Registry Mirrors: https://docker.xuanyuan.me/),但你依然报错,这通常有以下几个原因:
1. 镜像源虽然显示,但实际“不可达”
即便 docker info 列出了镜像源,如果该源的服务器在国内被墙、限流或挂了,docker pull 依然会失败。目前的现状是:
- xuanyuan.me 等公益源在高峰期经常由于带宽限制导致连接超时或
502/503错误。 - WARNING 提示:你看到的
No cpu cfs quota support等警告属于内核功能限制(通常出现在虚拟机或旧版内核中),不影响你拉取镜像,可以暂时忽略。
2. GHCR 镜像不是“救命稻草”
你之前想把 Caddy 改成 ghcr.io/caddybuilds/caddy:2。这个操作风险很高:
- 连通性差:
ghcr.io(GitHub) 在国内的访问质量比 Docker Hub 还差,经常直接Connection Refused。 - 版本差异:
caddybuilds/caddy是第三方个人构建,可能缺少官方版的功能,生产环境不建议使用。
3. 最稳妥的解决办法
建议放弃修改镜像名,直接配置多个更稳的加速源,并重启服务。
第一步:更新 daemon.json
请删除旧配置,改用目前 2026 年 2 月初确认可用的组合:
bash
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.nju.edu.cn",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.xuanyuan.me"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第二步:清理并重新拉取
不要只改 docker-compose.yml,先清理之前的失败残留,再拉取:
bash
cd /opt/stack
# 停止旧容器
docker-compose down
# 尝试拉取(会自动尝试列表里的所有加速源)
docker-compose pull
4. 终极绝招:直接指定加速前缀
如果 daemon.json 还是不生效,直接在 docker-compose.yml 里给镜像名加前缀,这是目前国内最有效的手段:
yaml
services:
caddy:
# 强制走 1Panel 的加速代理
image: docker.1panel.live/library/caddy:2
gotify:
image: docker.1panel.live/gotify/server:latest
很不错,第3步就通了,第4步还没验证,但是ChatGPT和谷歌AI,真的在2026年2月2日这一天,还是高下立见的。
