Docker-Proxy Documentation

自建Docker镜像加速服务,基于官方Docker Registry 一键部署Docker、K8s、Quay、Ghcr、Mcr、Nvcr等镜像加速\管理服务。支持免服务器部署到 ClawCloud\Render\Koyeb

4,235 stars JavaScript JavaScript 1 file · ~886 tokens #docker-proxy#docker-registry#gcr-registry
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy Docker-Proxy on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name docker-proxy -p 50000:50000 --restart always ${REGISTRY_IMAGE:-dqzboy/registry:latest}
Configured Services & Ports
⚙️ go-proxy
image: ${REGISTRY_IMAGE:-dqzboy/registry:latest}
🔌 Ports: 50000:5000
⚙️ hubcmd-ui
image: ${UI_IMAGE:-dqzboy/hubcmd-ui:latest}
🔌 Ports: 30080:3000
docker-compose.yml
yaml (docker-compose.yml)
services:
  go-proxy:
    image: ${REGISTRY_IMAGE:-dqzboy/registry:latest}
    container_name: reg-go-proxy
    restart: always
    environment:
      - OTEL_TRACES_EXPORTER=none
      - GO_PROXY_ADMIN_TOKEN=${GO_PROXY_ADMIN_TOKEN:-change-me-to-a-strong-random-token}
      # 出站代理由一键安装脚本按需写入;默认关闭。
      # HTTPS_PROXY 通常也使用 http:// 地址,由代理通过 HTTP CONNECT 转发 HTTPS。
      # - HTTP_PROXY=http://host:port
      # - HTTPS_PROXY=http://host:port
      # - NO_PROXY=localhost,127.0.0.1,::1,go-proxy,reg-go-proxy,hubcmd-ui,.local
    # 配置持久化:挂载宿主机目录,容器内配置写在 /app/config.d/config.yaml。
    volumes:
      - ./config/go-proxy:/app/config.d
      # 镜像缓存(开启缓存后落盘于此;默认配置 cache.enabled=false 时不写入)
      - ./data/go-proxy-cache:/app/cache
    ports:
      - 50000:5000
    networks:
      - registry-net

  hubcmd-ui:
    image: ${UI_IMAGE:-dqzboy/hubcmd-ui:latest}
    container_name: hubcmd-ui
    restart: always
    depends_on:
      - go-proxy
    environment:
      # 指向 go-proxy 的管理端口
      - GO_PROXY_ADMIN_URL=http://go-proxy:5001
      - GO_PROXY_ADMIN_TOKEN=${GO_PROXY_ADMIN_TOKEN:-change-me-to-a-strong-random-token}
      # 会话签名密钥
      # 生成:openssl rand -hex 32
      - SESSION_SECRET=${SESSION_SECRET:-}
      # 镜像搜索由 hubcmd-ui 服务端访问 Docker Hub、GitHub、Quay 等外部 API。
      # 默认不注入代理变量;extra_hosts + DNS/SNI 直连时保持下面三行注释。
      # 使用 HTTP(S) 上游代理时才取消注释;HTTPS 目标会由 UI 建立 CONNECT 隧道。
      # 若同时使用代理和 DNS/SNI,给 NO_PROXY 增加需要经 extra_hosts 直连的域名。
      # 一键安装脚本选择上游代理后会自动启用这三行,可按需单独关闭 UI 的代理。
      # - HTTP_PROXY=http://host:port
      # - HTTPS_PROXY=http://host:port
      # - NO_PROXY=localhost,127.0.0.1,::1,go-proxy,reg-go-proxy,hubcmd-ui,.local
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # SQLite 数据库等运行时数据
      - ./data/hubcmd-ui:/app/data
    ports:
      - 30080:3000
    networks:
      - registry-net

networks:
  registry-net:

中文 | English


📝 准备工作

⚠️ 重要:选择一台国外服务器,并且未被墙。对于域名,无需进行国内备案。你也可以通过一些平台申请免费域名。在一键部署过程中,如果选择安装Caddy,它将自动配置HTTPS。若选择部署Nginx服务,则需要自行申请一个免费的SSL证书,或者通过其他方式来实现SSL加密。

免费域名证书申请

方式一: Acme.sh自动生成和续订Lets Encrypt免费SSL证书

方式二: 域名托管到Cloudflare 开启免费SSL证书

方式三: 可通过第三方平台,申请免费的域名证书(免费一般都为DV证书),适用于个人网站、博客和小型项目


🔨 功能

  • 零磁盘缓存:单进程按 Host 自动路由到各大公共仓库(Docker Hub、GHCR、Quay、K8s、MCR、Elastic、NVCR 等),服务端完成 token 鉴权并以流式转发,不落盘、不占用本地存储
  • 一键部署:交互式菜单一键完成「安装依赖 → 启动 Docker 镜像加速 →(可选)渲染 Nginx/Caddy 反代」
  • 可选反代服务:自动部署 Nginx 或 Caddy 反代,并渲染对应配置(HTTPS、Host 改写)
  • 支持仓库账号认证:可配置上游账号密码,由代理服务端换取 Bearer Token,从而拉取 Docker Hub 私有镜像并缓解官方限流
  • HubCMD-UI 管理面板:网页端直接增删改代理、设置服务器参数并热重载;含镜像搜索、文档教程、容器管理、监控告警等
  • 跨平台镜像:支持主流 linux/amd64、linux/arm64 等系统架构的部署
  • 系统看板:实时监控服务器资源与容器运行状态、网络流量信息
  • 日常运维管理:提供服务启动 / 停止 / 重启 / 日志 / 更新 / 卸载等全生命周期管理
  • 流量监控、告警:提供服务器带宽吞吐量及镜像拉取的详细客户端侧流量指标、阈值监控告警
  • Registry 管理:每个 Registry 独立配置管理,在线管理镜像代理(注册表)与服务设置,无需手动编辑配置文件
  • IP 访问控制:IP 黑白名单,控制谁能通过本服务拉取镜像。支持单个 IP 与 CIDR 网段

📦 部署

Docker 部署

直接下载 docker-compose.yaml 后运行:

bash
docker compose up -d

一键部署脚本

仓库内置 install/DockerProxy_Install.sh,交互式菜单一键完成「安装依赖 → 启动 Docker 镜像加速 →(可选)渲染 Nginx/Caddy 反代」。

shell
# CentOS && RHEL && Rocky
yum -y install curl
# ubuntu && debian
apt -y install curl

# 国外环境
bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"

# 国内环境cdn加速地址
bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/dqzboy/Docker-Proxy/install/DockerProxy_Install.sh)"

# 国内Github代理地址
bash -c "$(curl -fsSL https://ghp.ci/https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"

脚本会自动:检查并安装 Docker / Docker Compose;生成随机 GO_PROXY_ADMIN_TOKEN 写入 .env;可选部署 Nginx / Caddy 反代。

部署完成后访问 http://<服务器IP>:30080/admin 即可在网页管理代理与服务器参数

配置持久化与升级(重要)

配置文件挂载在宿主机 ./config/go-proxy/ 目录(容器内 /app/config.d/config.yaml)

  • 首次启动若宿主机还没有配置文件,容器会自动用镜像内置的默认配置初始化一份,无需手动创建。
  • 想恢复默认配置:删掉 ./config/go-proxy/config.yaml 后重建容器即可重新播种。

💻 Hubcmd-UI

  • 默认账户: root / admin@123 部署后请及时修改默认账号和密码
镜像加速 镜像搜索
Registry 管理 Registry 配置
系统看板 流量监控
访问控制 网络测试

💌 推广

描述信息 图文介绍
AIHUB中转,聚合十几家源头持续监控。让大家用上便宜且相对稳定的 Token。
DediRock 美国洛杉矶与纽约机房年付 VPS,覆盖低价特惠、存储型与高性能 NVMe 方案,适合 Docker、建站、开发测试与备份节点。
提供高性价比的海外VPS,支持多种操作系统,适合搭建Docker代理服务。
CloudCone 提供灵活的云服务器方案,支持按需付费,适合个人和企业用户。

*Telegram Bot: [点击联系](https://t.me/RelayHubBot) | E-Mail: [email protected]*

*仅接受长期稳定运营,信誉良好的商家

🤝 参与贡献

感谢所有做过贡献的人!

❤ 鸣谢

感谢以下项目的开源的付出:

项目参考了 CNCF Distribution 的镜像代理设计思路。

License

Docker-Proxy is available under the Apache 2 license


Star History