dockerregistry代理可以支持多个remoteurl吗?

Bo *_*ang 8 docker kubernetes

当前的 docker 注册表看起来只支持 config.yml 中的一个远程 url,例如:

proxy:
      remoteurl: https://registry-1.docker.io
Run Code Online (Sandbox Code Playgroud)

因此,如果 docker 询问其他镜像,例如“gcr.io/google_containers/pause-amd64:3.0”,它不会进入镜像注册表。

是否可以在一个 docker 注册表 config.yml 中配置多个远程 URL?

BMi*_*tch 5

您需要为要代理的每个远程注册表设置单独的拉通注册表缓存。如果你拉一下gcr.io/google_containers/pause-amd64:3.0,它就会直接转到grc.io。要使用拉取缓存,您需要指向本地缓存服务器。

如果您没有将服务器限制为仅代理单个源,则由于您指定的是缓存主机名而不是远程服务器主机名,因此可能会产生与来自多个源的同一图像发生名称冲突的风险。因此,仅代理单一来源是一件好事。

由于注册表作为容器提供,因此您始终可以在同一主机上运行多个实例,每个实例对应一个 upsteam 源,具有不同的公开端口,或者将它们放在反向代理后面,反向代理将根据不同的端口向每个实例发送流量。请求中的主机名或路径。有关反向代理的示例,请参阅 nginx-proxy 和 traefik。