本指南将帮助您在 10分钟内 完成远程服务器部署,确保目标区域用户能够高速访问您的 Docker Registry 代理服务。
- ✅ 一台远程服务器(推荐: 亚太A区/新加坡/东京)
- ✅ 服务器配置: 最低 1C2G, 推荐 2C4G
- ✅ 操作系统: Ubuntu 20.04+, Debian 11+, 或 CentOS 8+
- ✅ 一个域名(用于配置子域名)
- ✅ Root 或 sudo 权限
# SSH 连接到服务器后执行
git clone https://github.com/DeyiXu/go-docker-proxy.git
cd go-docker-proxysudo ./deploy-overseas.sh脚本会自动完成:
- ✅ 检测操作系统
- ✅ 安装 Docker 和依赖
- ✅ 优化网络参数(BBR拥塞控制)
- ✅ 配置防火墙
- ✅ 部署应用容器
- ✅ 可选安装 Nginx + Certbot(SSL)
在您的域名提供商处添加 A 记录:
docker.yourdomain.com A <服务器公网IP>
quay.yourdomain.com A <服务器公网IP>
gcr.yourdomain.com A <服务器公网IP>
ghcr.yourdomain.com A <服务器公网IP>
k8s.yourdomain.com A <服务器公网IP>
提示: 如果要支持所有子域名,可以添加通配符:
*.yourdomain.com A <服务器公网IP>
# 安装 Certbot (如果脚本中未选择安装)
sudo apt-get install certbot python3-certbot-nginx
# 为主域名申请证书
sudo certbot --nginx -d docker.yourdomain.com
# 为所有子域名申请证书(如果使用通配符DNS)
sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com"# 检查服务状态
cd /opt/go-docker-proxy
docker compose ps
# 查看日志
docker compose logs -f
# 测试健康检查
curl http://localhost:8080/health
# 测试 Registry API
curl http://localhost:8080/v2/在目标区域的机器上测试:
# 测试拉取镜像
docker pull docker.yourdomain.com/library/alpine:latest
# 测试其他仓库
docker pull quay.yourdomain.com/prometheus/prometheus:latest
docker pull ghcr.yourdomain.com/linuxserver/nginx:latest您的 Docker Registry 代理已成功部署!
sudo apt-get update
sudo apt-get install -y docker.io docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start dockersudo yum install -y docker docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker# 启用 BBR 拥塞控制
sudo bash -c 'cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_congestion_control=bbr
net.core.default_qdisc=fq
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.tcp_keepalive_time=1200
EOF'
sudo sysctl -p# 创建应用目录
sudo mkdir -p /opt/go-docker-proxy
cd /opt/go-docker-proxy
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
go-docker-proxy:
image: ghcr.io/deyixu/go-docker-proxy:latest
container_name: go-docker-proxy
ports:
- "8080:8080"
environment:
- PORT=8080
- CACHE_DIR=/cache
- DEBUG=false
- CUSTOM_DOMAIN=yourdomain.com # 修改为你的域名
volumes:
- ./cache:/cache
restart: unless-stopped
healthcheck:
test: ["CMD", "/go-docker-proxy", "-health-check"]
interval: 30s
timeout: 3s
retries: 3
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
EOF
# 启动服务
docker compose up -d
# 查看日志
docker compose logs -f# 安装 Nginx
sudo apt-get install -y nginx
# 创建配置文件
sudo tee /etc/nginx/sites-available/docker-proxy << 'EOF'
upstream docker_proxy {
server 127.0.0.1:8080;
keepalive 32;
}
server {
listen 80;
server_name docker.yourdomain.com *.yourdomain.com;
location / {
proxy_pass http://docker_proxy;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10G;
proxy_buffering off;
}
}
EOF
# 启用配置
sudo ln -sf /etc/nginx/sites-available/docker-proxy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxsudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d docker.yourdomain.comsudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enablecd /opt/go-docker-proxy
# 下载监控脚本
curl -O https://raw.githubusercontent.com/DeyiXu/go-docker-proxy/main/monitor.sh
chmod +x monitor.sh
# 运行监控
./monitor.sh -m # 持续监控模式# 单次健康检查
./monitor.sh -c
# 查看日志
./monitor.sh -l 100
# 性能测试
./monitor.sh -p- 将域名托管到 Cloudflare
- 添加 DNS A 记录
- 启用 Proxy(橙色云朵)
- SSL/TLS 设置: Full (strict)
在 Cloudflare 页面规则中添加:
规则1: *.yourdomain.com/v2/*/blobs/*
- 缓存级别: 全部缓存
- 边缘缓存 TTL: 7天
规则2: *.yourdomain.com/v2/*/manifests/*
- 缓存级别: 全部缓存
- 边缘缓存 TTL: 1小时
使用 UptimeRobot 免费监控:
- URL:
https://docker.yourdomain.com/health - 检查间隔: 5分钟
- 告警: Email/Telegram
# 检查服务是否运行
docker ps
# 检查端口是否监听
sudo netstat -tuln | grep 8080
# 检查防火墙
sudo ufw status
# 查看日志
docker logs go-docker-proxy- 检查服务器带宽
- 启用 Cloudflare CDN
- 查看 网络优化配置
- 考虑部署到更近的地区(亚太A区)
# 确认域名解析正确
dig docker.yourdomain.com
# 使用 DNS 验证方式
sudo certbot certonly --manual --preferred-challenges dns \
-d docker.yourdomain.comcd /opt/go-docker-proxy
docker compose pull
docker compose up -d# 查看缓存大小
du -sh ./cache
# 查看缓存文件数
find ./cache -type f | wc -l
# 清理缓存
rm -rf ./cache/*基于实际部署经验:
| 部署地区 | 目标区域延迟 | 下载速度 | 月度成本 |
|---|---|---|---|
| 亚太A区 | 20-50ms | 10-50MB/s | $30-50 |
| 新加坡 | 60-100ms | 5-30MB/s | $20-40 |
| 东京 | 80-120ms | 5-20MB/s | $20-40 |
硬件配置: 2C4G, 100GB SSD, 1TB 流量
- 完整部署指南 - 详细的部署文档
- 网络优化配置 - 深度网络优化
- 架构文档 - 系统架构说明
- GitHub Issues - 问题反馈
恭喜! 您现在拥有了一个高性能的 Docker Registry 代理服务。
下一步:
- ✅ 配置客户端使用代理
- ✅ 设置监控和告警
- ✅ 定期查看日志和性能指标
- ✅ 根据使用情况调整缓存大小
使用示例:
# 在目标区域的机器上配置
sudo tee /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.yourdomain.com"
]
}
EOF
sudo systemctl restart docker
# 测试
docker pull nginx:latest享受高速的 Docker 镜像下载体验! 🚀