在 nexus3 中使用 nginx 配置代理可以访问 docker proxy 并推送至 docker hosted

admin

docker pull 通过 docker-group 既可以拉取 docker-hosted 镜像又可以拉取 docker-proxy 的镜像。

由于 nexus3 的限制,如果只代理至 docker-group 的话,无法推送镜像,所以需要将推送代理至 docker-hosted

默认的 GETHEAD 请求代理至 docker-group,其余的 PUT POST 请求代理至 docker-group

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
http {

map $request_method $repo_name {
default hosted;
GET group;
HEAD group;
}

server {

location /v2/ {
client_max_body_size 8000M;
rewrite /v2/(.*) /repository/docker-$repo_name/v2/$1 break;
proxy_pass http://${IP}:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

}