ZVVQ代理分享网

国内Docker代理设置指南

作者:zvvq博客网

国内Docker代理设置指南

解决Docker Hub访问问题,提高镜像拉取速度与稳定性

镜像加速

使用国内镜像源可大幅提高镜像拉取速度,是大多数用户的首选方案。

代理配置

通过设置HTTP/HTTPS代理,使Docker能够访问国外资源,适用于无法直接访问镜像源的情况。

自建方案

对于有技术能力的用户,可以自建代理服务或使用DaoCloud等免费方案实现长期稳定访问。

为什么需要代理设置?

由于网络环境限制,国内用户在访问Docker Hub时常常面临速度慢、甚至无法连接的问题。通过合理的代理设置,可以:

  • 显著提高镜像拉取速度
  • 确保服务的稳定性
  • 避免因网络波动导致的构建失败
  • 支持私有仓库和企业内部镜像的访问

国内Docker镜像加速服务

常用镜像源地址

Docker中国官方镜像
https://registry.docker-cn.com
中科大源
https://docker.mirrors.ustc.edu.cn
网易源
https://hub-mirror.c.163.com
百度源
https://mirror.baidubce.com
腾讯云
https://ccr.ccs.tencentyun.com
阿里云

需登录 cr.console.aliyun.com 获取专属加速地址

配置方法

编辑配置文件

编辑 /etc/docker/daemon.json(若不存在则新建),添加以下内容:

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}

重启Docker服务

sudo systemctl restart docker

验证

执行 docker info,查看 Registry Mirrors 是否生效。

# 部分输出示例
Registry Mirrors:
 https://docker.mirrors.ustc.edu.cn/
 https://hub-mirror.c.163.com/
# ...

注意事项

  • 部分镜像源可能不稳定(如2025年初国内镜像源集体停服问题),建议同时配置多个镜像源。
  • 阿里云需单独申请加速地址,其他源可直接使用。
  • 镜像源更新频率可能低于官方源,某些新版本镜像可能需要等待一段时间才能同步。

代理设置

为Docker守护进程设置代理

适用于 docker pull 等命令:

Linux系统

创建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf,添加:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
Environment="NO_PROXY=localhost,127.0.0.0/8,192.168.0.0/16"  # 绕过代理的地址

重启服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

验证:

sudo systemctl show --property=Environment docker

群晖NAS

编辑文件 /usr/local/lib/systemd/system/pkg-Docker-dockerd.service,在 [Service] 下添加环境变量。

macOS

通过Docker Desktop的图形界面设置:

Preferences → Resources → Proxies
填入 HTTP/HTTPS 代理地址

容器内使用代理

若容器需访问外网:

方法1:启动时传递环境变量

docker run -e HTTP_PROXY=http://host_ip:1080 \
           -e HTTPS_PROXY=http://host_ip:1080 \
           ...

方法2:共享宿主机网络(仅Linux)

docker run --network=host ...

方法3:监听容器网络

如Docker网桥 172.17.0.1

代理协议限制

Docker 仅支持HTTP/HTTPS代理,不支持SOCKS5。若使用SOCKS5代理(如Shadowsocks),需通过工具(如polipo)转换为HTTP代理。

免费代理服务与自建方案

道客(DaoCloud)镜像代理

开源项目 public-image-mirror,提供免费代理服务。

使用方式

在镜像名前添加 docker.m.daocloud.io/ 前缀,例如:

docker pull docker.m.daocloud.io/library/nginx

或修改daemon.json配置

{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}

自建代理

Cloudflare搭建Docker Hub镜像代理

需国外服务器支持,通过Cloudflare反向代理实现高速访问。

自建镜像仓库缓存

使用 registry 镜像配置代理缓存,提高本地访问速度。

docker run -d \
  --name registry-cache \
  -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
  -p 5000:5000 \
  registry:2

常见问题解决

 

配置文件错误

确保 daemon.json 格式正确(无多余逗号),否则Docker无法启动。

 

代理失效

新版Docker(≥17.07)已废弃 export https_proxy 方式,必须通过 systemd 或 daemon.json 配置。

 

镜像拉取失败

优先尝试更换镜像源,其次启用代理。检查 NO_PROXY 是否包含必要地址(如私有仓库)。

商业服务

 

Docker中国区授权代理

如购软平台,提供正版Docker企业版销售及技术支持(非免费网络加速服务)。

商业服务通常包括:

  • 企业级技术支持
  • 定制化部署方案
  • 企业级安全合规
  • 高级培训与认证

总结建议

最佳实践

  1. 优先配置国内镜像源(如中科大、网易源),多数场景可满足需求。
  2. 若镜像源不稳定,启用HTTP代理(通过systemddaemon.json)。
  3. 长期使用可自建代理服务或选择DaoCloud等免费方案。
  4. 容器内代理需单独配置,避免与宿主机代理冲突。

注意事项

注:部分教程可能存在时效性(如2025年初镜像源停服问题),建议关注技术社区更新。