docker推送到私有注册表:如何不指定端口

rob*_*ert 5 docker docker-registry

当按照此docker指令部署私有注册表时,我必须在CLI中指定端口以像这样推送映像:

对于http80),命令为:docker push host.com:80/alpine。对于https443),命令必须为:docker push host.com:443/alpine。如果将端口映射到5000,则命令为:docker push host.com:5000/alpine

所需的效果是像这样的简单推送: docker push host.com/alpine

docker run启动注册表容器时,如何构造完整的命令来实现此目的?

ser*_*ndr 1

默认端口是443,据我所知,它无法更改。但是您可以在另一台主机上设置 NGINX(或 HAProxy)并将其配置为将所有请求代理到注册表,如下所示:

server {
  listen *:443 ssl;
  server_name registry.company.com;
  proxy_set_header Host upload.expert;
  location / {
    proxy_pass http://private.registry.company.com:5000;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后就只是docker push registry.company.com/alpine