Docker-Proxy Docker & Self-Hosted Deployment

GitHub

自建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 Compose
1. Pull Image (DOCKERHUB) docker pull library/${REGISTRY_IMAGE
2. Docker Run (1-Click Launch) docker run -d --name docker-proxy -p 50000:50000 --restart always ${REGISTRY_IMAGE:-dqzboy/registry:latest}
3. Podman Run podman run -d --name docker-proxy -p 50000:50000 --restart always ${REGISTRY_IMAGE:-dqzboy/registry:latest}
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/${REGISTRY_IMAGE:-dqzboy/registry
5. ORAS Pull (OCI Artifact) oras pull ${REGISTRY_IMAGE:-dqzboy/registry:latest}
6. Compose Deployment docker compose up -d
docker-compose.yaml
Download .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: