基于 OpenResty 的 Docker Hub 反向代理,解决拉取镜像时的网络访问问题。
docker run -d \
--name dhcr-proxy \
-p 48080:80 \
ghcr.io/xclhove/dhcr-proxy:1.31.1.1-1# 从 GHCR 拉取已构建的镜像(推荐)
docker compose -f docker-compose.yaml up -d
# 开发模式:使用本地 nginx.conf 构建并启动
docker compose up -d启动代理后,配置 Docker 守护进程使用代理:
{
"registry-mirrors": ["https://example.com"]
}写入 /etc/docker/daemon.json(Linux)或 Docker Desktop → Settings → Docker Engine(Windows/Mac),然后重启 Docker。
拉镜像测试:
docker pull nginx:alpine├── .github/workflows/build.yml # CI/CD:推送 v* 标签自动构建推送到 GHCR
├── Dockerfile # 镜像构建文件
├── docker-compose.yaml # 开发环境(原始 openresty + 本地配置挂载)
├── docker-compose.release.yaml # 生产环境(从 GHCR 拉取)
├── src/
│ └── nginx.conf # OpenResty / Nginx 反向代理配置
└── .gitignore
# 使用默认版本
docker build -t dhcr-proxy:1.31.1.1-1 .
# 指定 OpenResty 版本
docker build \
--build-arg OPENRESTY_VERSION=1.31.1.1-1 \
--build-arg ALPINE_ARCH=amd64 \
-t dhcr-proxy:1.31.1.1-1 .当 OpenResty 发布新版本时,更新 Dockerfile 中的 OPENRESTY_VERSION 并打标签发布:
git tag v1.31.1.1-1
git push origin v1.31.1.1-1GitHub Actions 会自动构建并推送镜像到 ghcr.io/xclhove/dhcr-proxy:<版本号>。