docker注册表代理支持多个remoteurl?

时间:2017-01-29 14:32:01

标签: docker kubernetes

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

proxy:
      remoteurl: https://registry-1.docker.io

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

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

1 个答案:

答案 0 :(得分:1)

您需要为要代理的每个远程注册表设置单独的直通式注册表缓存。如果您要对gcr.io/google_containers/pause-amd64:3.0进行操作,则会直接转到grc.io。要使用直通式缓存,您需要指向本地缓存服务器。

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

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