Docker Compose 镜像配置教程
在 Docker Compose 环境中配置轩辕镜像源,让容器编排享受优化访问体验
背景说明
Docker 默认使用官方镜像仓库,在国内大陆访问时速度较慢,容易出现连接超时、拉取失败等问题。
轩辕镜像支持 9 个主流镜像仓库:
轩辕镜像提供高速稳定的镜像服务,支持 Docker 和 Compose 环境,无需额外插件,全面兼容 Docker 镜像拉取逻辑。
💡适用场景:希望通过 docker-compose 管理容器,并全局启用轩辕镜像功能的用户
1获取专属域名
登录轩辕镜像官网:https://xuanyuan.cloud
进入【个人中心】,获取您的专属域名专属域名:
格式示例:https://xxx.xuanyuan.run
其中 xxx 为您专属域名,请替换下文命令中的 xxx 部分。
2配置 Docker Daemon 镜像源
推荐方案:一键安装配置脚本
该脚本支持多种Linux发行版,支持一键安装 docker、docker-compose 并且一键配置轩辕镜像源。
或者手动编辑(或创建)Docker 的配置文件 /etc/docker/daemon.json:
echo '{
"insecure-registries": ["xxx.xuanyuan.run"],
"registry-mirrors": ["https://xxx.xuanyuan.run"]
}' | sudo tee /etc/docker/daemon.json > /dev/null⚠️其中 xxx 是您的专属域名,请您手动更换。 专属域名请登录网站后在个人中心获取。
3重新加载 Daemon 并重启 Docker 服务
重新加载 systemd daemon 配置:
sudo systemctl daemon-reload
重启 Docker 服务:
sudo systemctl restart docker
可选:查看 Docker 配置是否加载成功
docker info | grep -A 10 "Registry Mirrors"
输出中应包含您的专属地址,例如:
https://xxx.xuanyuan.run/
使用 Docker Compose 拉取镜像
一旦系统级 Docker 配置完成,Docker Compose 将自动使用轩辕镜像镜像拉取,无须单独配置 Compose 文件。
示例 docker-compose.yml:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root运行命令:
docker compose up -d
镜像将自动通过 https://xxx.xuanyuan.run 拉取,无需额外设置。
验证镜像拉取是否优化访问
执行以下命令查看实际使用的拉取源:
docker pull mysql:8.0
再查看系统日志:
journalctl -u docker.service -n 50
如果看到如 connecting to https://xxx.xuanyuan.run/v2/ 的字样,说明配置已生效。
常见问题解答
Q: 为什么配置了 registry-mirrors,还是走 docker.io?
很多用户反馈,已经在 Docker 中配置了镜像源(registry-mirrors),但拉取镜像时仍然访问官方源(docker.io)。
拉取报错如下:
Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client. Timeout exceeded while awaiting headers)这是因为 Docker 的镜像拉取机制是优先尝试使用镜像源,而不是强制始终使用。部分镜像的 tag 或 namespace 特殊(如 docker-library),可能仍绕过镜像源。
常见原因:
专属域名没有可用流量
如果你使用专属域名,但该地址没有充值流量,当 Docker 客户端请求镜像源时,服务端会返回 402 Payment Required 错误,Docker 就会直接回退到官方仓库 docker.io 拉取镜像。
解决方案: 请前往充值页面充值相应的流量包,确保您的专属域名有足够的流量支持镜像服务。
如何确认专属域名可用
建议先用下列方式测试:
docker pull xxx.xuanyuan.run/mysql如果能正常拉取,说明专属域名可用且有流量。
解决方法:
强烈建议手动修改 docker-compose.yml 中的镜像地址为专属域名,如:
version: "3.8"
services:
web:
image: xxx.xuanyuan.run/library/nginx:latest
ports:
- "8080:80"
db:
image: xxx.xuanyuan.run/library/mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootDockerfile 示例
Dockerfile 里是这样写的:
FROM centos VOLUME ["volume01" "volume02"] CMD echo '----end----' CMD /bin/bash
这里 FROM centos 表示基础镜像是从 Docker Hub 官方仓库拉取的 centos 镜像。
如果你要指定用 轩辕镜像仓库地址,只要在 FROM 里写完整的专属域名镜像地址即可,例如:
假设你的镜像仓库地址是 xxx.xuanyuan.run/centos:7
那么 Dockerfile 改成:
FROM xxx.xuanyuan.run/centos:7 VOLUME ["volume01" "volume02"] CMD echo '----end----' CMD ["/bin/bash"]
这样 docker build 时就不会去官方 Docker Hub 拉,而是从你指定的 轩辕镜像源 拉。
附加建议
若在 CI/CD 环境中(如 GitLab CI、GitHub Actions)使用 Docker Compose,可通过替换 Compose 文件中的镜像前缀(如 docker.io/nginx → xxx.xuanyuan.run/nginx)来实现更强制性的访问优化。
技术支持
如遇配置问题,请 提交工单 寻求技术支持。
轩辕镜像配置手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像服务
Windows/Mac
在 Docker Desktop 配置镜像
Docker Compose
Docker Compose 项目配置
K8s Containerd
Kubernetes 集群配置 Containerd
K3s
K3s 轻量级 Kubernetes 镜像加速
宝塔面板
在宝塔面板一键配置镜像
群晖
Synology 群晖 NAS 配置
飞牛
飞牛 fnOS 系统配置镜像
极空间
极空间 NAS 系统配置服务
爱快路由
爱快 iKuai 路由系统配置
绿联
绿联 NAS 系统配置镜像
威联通
QNAP 威联通 NAS 配置
Podman
Podman 容器引擎配置
Singularity/Apptainer
HPC 科学计算容器配置
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
镜像拉取常见问题
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务