原理是基于方向代理,例如镜像源为 docker-library.example.com
,想要使用 example.com/<仓库名>
或者 example.com/<用户名>/<仓库名>
的方式来访问镜像;同时正常的 HTTP 访问依然返回 HTML 页面。
需要注意的是,此方案会导致 /v2
开头的 URL 被路由到 Docker Registry,因此您设计的 Web 页面不能包含 /v2
开头的 URL。
Nginx 配置如下
1 | location /v2 { |
proxy_set_header
选项可以根据需要添加。