本地主机上带有nginx proxy\u pass的docker注册表

本地主机上带有nginx proxy\u pass的docker注册表,nginx,docker,Nginx,Docker,我正试图设置一个私人docker注册表来上传我的东西,但我被卡住了。docker注册表实例正在端口5000上运行,我在它前面设置了nginx,并使用代理传递指令将端口80上的请求传递回localhost:5000 当我尝试推送图像时,出现以下错误: 未能上载元数据:Puthttp://localhost:5000/v1/images/long_image_id/json: 拨打tcp本地主机:5000:连接被拒绝 如果我在nginx配置文件中用我的服务器的ip地址更改localhost,我可以正

我正试图设置一个私人docker注册表来上传我的东西,但我被卡住了。docker注册表实例正在端口5000上运行,我在它前面设置了nginx,并使用代理传递指令将端口80上的请求传递回
localhost:5000

当我尝试推送图像时,出现以下错误:
未能上载元数据:Puthttp://localhost:5000/v1/images/long_image_id/json: 拨打tcp本地主机:5000:连接被拒绝

如果我在nginx配置文件中用我的服务器的ip地址更改localhost,我可以正确地推送。当从nginx传递
localhost
时,为什么我的本地
docker push
命令会抱怨
localhost


如果有帮助,服务器在EC2上。

我不确定您的流量的具体情况,但我花了很多时间使用它来检查Docker的数据流。Docker注册表实际上分为两部分,索引和注册表。客户端与索引联系以处理元数据,然后转发到单独的注册表以获取实际的二进制数据

Docker自托管注册表带有自己的淡化索引服务器。因此,您可能需要弄清楚哪个注册表服务器作为索引请求的响应头被传回,以及这是否适用于您的配置。您可能需要设置
registry\u endpoints
config设置,以便使所有内容都能很好地协同工作

为了为每个人解决这个问题和其他问题,我们决定构建一个名为的托管docker注册表,它支持私有存储库。您可以使用我们的服务存储您的私有映像并将其部署到主机


希望这有帮助

我不确定您的流量的具体情况,但我花了很多时间使用它来检查Docker的数据流。Docker注册表实际上分为两部分,索引和注册表。客户端与索引联系以处理元数据,然后转发到单独的注册表以获取实际的二进制数据

Docker自托管注册表带有自己的淡化索引服务器。因此,您可能需要弄清楚哪个注册表服务器作为索引请求的响应头被传回,以及这是否适用于您的配置。您可能需要设置
registry\u endpoints
config设置,以便使所有内容都能很好地协同工作

为了为每个人解决这个问题和其他问题,我们决定构建一个名为的托管docker注册表,它支持私有存储库。您可以使用我们的服务存储您的私有映像并将其部署到主机


希望这有帮助

我认为您面临的问题是,docker注册表在其自身与docker客户端之间的对话早期通过X-docker-endpoints头发布所谓的端点,docker客户端随后将使用这些端点进行后续请求

您有一个设置,Docker客户端首先在(公共)80端口上与Nginx通信,然后切换到播发的端点,该端点可能是localhost:5000(即您的本地计算机)


您应该查看您运行的Docker注册表中是否存在一个选项,以便它作为远程主机播发端点,即使它在localhost:5000上侦听。

我认为您所面临的问题是docker注册表在其与docker客户端之间的对话早期通过X-docker-endpoints头发布所谓的端点,然后docker客户端将使用这些端点进行后续请求

您有一个设置,Docker客户端首先在(公共)80端口上与Nginx通信,然后切换到播发的端点,该端点可能是localhost:5000(即您的本地计算机)


您应该查看您运行的Docker注册表中是否存在一个选项,以便它作为您的远程主机播发端点,即使它侦听localhost:5000。

使用以下内容覆盖注册表设置的X-Docker-endpoints头:

proxy_hide_header  X-Docker-Endpoints;
add_header         X-Docker-Endpoints $http_host;

使用以下内容覆盖注册表设置的X-Docker-Endpoints标头:

proxy_hide_header  X-Docker-Endpoints;
add_header         X-Docker-Endpoints $http_host;
这是他们使用它的地方:您可以将它添加到config.yml文件的活动配置部分。这是他们使用它的地方:您可以将它添加到config.yml文件的活动配置部分。