此项目包含 registry-1.docker.io、get.docker.com、download.docker.com 的反向代理,并自动处理认证问题
| 变量 | 说明 | 示例值 | 默认值 |
|---|---|---|---|
| REGISTRY_LISTEN | 监听地址 | 127.0.0.1 | (监听所有网卡) |
| REGISTRY_PORT | 监听端口 | 8855 | 8855 |
| GEO_DB_PATH | GEOIP 数据文件 | /opt/GeoLite2-Country.mmdb | ./GeoLite2-Country.mmdb |
| GET_DOCKER_HOST | docker 源域名 | docker.xxx.com |
GEO_DB_PATH:若有值并且文件能正常读取,则自动开启过滤,只放行IP为CN和PRIVATE的请求
GET_DOCKER_HOST:若有值,则修改Docker安装脚本中的DEFAULT_DOWNLOAD_URL为https://{GET_DOCKER_HOST}/docker-ce
注意:服务本身并不支持SSL,需要使用Nginx等反代工具反向代理此服务
server {
listen 443 ssl so_keepalive=on;
# SSL配置
location /v2 {
proxy_pass http://127.0.0.1:8855/v2;
proxy_set_header Host $host;
}
location /v2/ {
proxy_pass http://127.0.0.1:8855/v2/;
proxy_set_header Host $host;
}
location /token {
proxy_pass http://127.0.0.1:8855/token;
proxy_set_header Host $host;
}
location /get-docker {
proxy_pass http://127.0.0.1:8855/get-docker;
proxy_set_header Host $host;
}
location /docker-ce/ {
proxy_pass http://127.0.0.1:8855/docker-ce/;
proxy_set_header Host $host;
}
location / {
return 444;
}
}首先编译出可执行程序,命名为registry_proxy,然后执行
docker buildx build -t registry-proxy:latest .
docker run -d --name registry-proxy --net host --restart unless-stopped \
-e TZ=Asia/Shanghai \
-e REGISTRY_PORT=8855 \
-e REGISTRY_LISTEN=127.0.0.1 \
-e GET_DOCKER_HOST=xxx.xxx.com \
registry-proxy:latest