收藏文章 楼主

docker 配置代理仓库

版块:docker   类型:普通   作者:小绿叶技术博客   查看:11   回复:0   获赞:0   时间:2026-10-30 01:05:47




# [docker.eisc.cn](https://docker.eisc.cn) 海外代理(单层 registry proxy)完整部署步骤

作用:这一台直接代理 Docker Hub,上游是 `registry-1.docker.io`,大陆那台后面只做 Nginx 转发,不再跑 registry 容器,避免二级 registry 套娃逃逸。
架构:
`Nginx(80) → 本机 registry:2(127.0.0.1:5000) → registry-1.docker.io`

> 
> 环境:Ubuntu,工作目录:`/datadisk/eisc/registry-proxy`

## 1. 准备目录

```
mkdir -p /datadisk/eisc/registry-proxy
cd /datadisk/eisc/registry-proxy
```

## 2. 编写 docker-compose.yml

```
nano docker-compose.yml
```

内容:

```
version: '3.8'
services:
  registry:
    image: registry:2
    container_name: registry-proxy
    restart: always
    # 只监听回环,不对外暴露5000端口,由Nginx对外提供80服务
    ports:
      - "127.0.0.1:5000:5000"
    environment:
      # 上游直接指向Docker官方,不要填另一个registry,防止套娃
      REGISTRY_PROXY_REMOTEURL: "https://registry-1.docker.io"
    volumes:
      # 缓存镜像数据持久化
      - ./data:/var/lib/registry
```

保存退出(nano:Ctrl+O 回车保存,Ctrl+X 退出)

## 3. 启动 registry 代理容器

```
sudo docker compose up -d
```

查看状态,确认是 Up:

```
sudo docker compose ps
```

查看日志(排错用)

```
sudo docker compose logs -f registry
```

## 4. Nginx 站点配置(docker.conf)

文件路径:`/datadisk/eisc/wwwconf/301/docker.conf`

```
nano /datadisk/eisc/wwwconf/301/docker.conf
```

完整内容:

```
server {
    listen 80;
    server_name docker.eisc.cn;

    location / {
        proxy_pass http://127.0.0.1:5000;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 这个头是防止manifest跳转逃逸的关键
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;

        proxy_buffering on;
        proxy_buffer_size 16k;
        proxy_buffers 4 64k;
    }
}
```

## 5. 校验 Nginx + 重载

```
sudo nginx -t
sudo nginx -s reload
```

## 6. 本机测试 [docker.eisc.cn](https://docker.eisc.cn) 代理是否正常(在 [eisc.cn](https://eisc.cn) 服务器本机执行)

```
curl -i http://127.0.0.1:5000/v2/
curl -i http://docker.eisc.cn/v2/
```

✅ 正常返回 HTTP/1.1 200 OK,带 `Docker-Distribution-Api-Version: registry/2.0`

## 7. 域名与解析说明

- `docker.eisc.cn` A 记录解析到这台海外机的公网 IP
- **不需要 hosts 劫持**,外部机器直接域名访问 80 端口

---

# 大陆侧 [docker.ddoss.cn](https://docker.ddoss.cn)(只做纯 Nginx 转发,不再跑 registry)步骤

> 
> 重点:大陆这台取消 registry proxy,仅 Nginx 反向代理,消除二级 registry 嵌套 bug
> 文件:大陆机 `/datadisk/eisc/wwwconf/301/docker.conf`

```
server {
    listen 80;
    server_name docker.ddoss.cn;

    location / {
        proxy_pass http://docker.eisc.cn;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}
```

重载 nginx

```
sudo nginx -t
sudo nginx -s reload
```

> 
> 如果大陆之前有 registry-proxy 容器,在大陆机执行关闭:

```
cd /datadisk/eisc/registry-proxy
sudo docker compose down
```

## 8. 客户端 daemon.json 配置(客户端机器)

```
{
  "registry-mirrors": ["http://docker.ddoss.cn"],
  "insecure-registries": ["docker.ddoss.cn"]
}
```

生效:

```
sudo systemctl daemon-reload
sudo systemctl restart docker
```

校验 mirror:

```
docker info | grep -A4 "Registry Mirrors"
```

之后就可以简写拉取:`docker pull debian:12`,不会再跳转逃逸。

---

# 故障自检命令清单([eisc.cn](https://eisc.cn)代理)

```
# 看容器状态
cd /datadisk/eisc/registry-proxy && docker compose ps
# 看日志
cd /datadisk/eisc/registry-proxy && docker compose logs -f registry
# 本地后端检测
curl -i http://127.0.0.1:5000/v2/
# Nginx入口检测
curl -i http://docker.eisc.cn/v2/
```

# 重要提醒

1. 只有 **[eisc.cn](https://eisc.cn) 这一台有 registry:2 代理**;大陆 [ddoss.cn](https://ddoss.cn) 只有 Nginx 转发,不再套 registry
2. REGISTRY_PROXY_REMOTEURL 只能写 `https://registry-1.docker.io`,不能填另一个 registry
3. 防火墙 / 云安全组:海外机放行 TCP 80 端口入站,5000 不需要放行(仅回环)

如果你需要,我可以单独给你一个一键部署脚本直接在[eisc.cn](https://eisc.cn)执行。




提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:docker 配置代理仓库

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息