net/http:请求在等待连接时被取消(Client.Timeout 在等待标头时超出)

Abh*_*ary 9 docker-registry

我在将图像推送到注册表时遇到了这个问题。

我在安装的 Ubuntu docker 中使用 Ubuntu 服务器,在 docker 创建的 docker 注册表容器中使用 Ubuntu 服务器,当注册表与gitlab.

这两个gitlab和注册表是同一台服务器上。

我在同一个域下创建了一个注册表gitlab

没有代码

获取 https://someurl:8000/v2/: net/http: 请求在等待连接时被取消(Client.Timeout exceeded while awaiting headers)

Ste*_*ane 7

我收到了类似的错误消息:

Get http://localhost:5000/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Run Code Online (Sandbox Code Playgroud)

在我的本地主机上执行 docker push 命令时:

docker push localhost:5000/redis:3.0.7
Run Code Online (Sandbox Code Playgroud)

我在那里看到了一个有趣的点并尝试了它。

在我编辑/etc/hosts文件并注释掉这一行之后:

#::1    localhost ip6-localhost ip6-loopback
Run Code Online (Sandbox Code Playgroud)

问题消失了。


M. *_*ami 7

由于目标不可达问题而遇到此错误。这意味着该端口可能被本地或外部防火墙过滤,或者作为另一个答案,机器的 DNS 设置可能是问题所在。

因此,请确保您连接到确实的目的地。我的问题是我获得服务器的服务提供商的防火墙,在创建 ssh 隧道后,我以本地身份登录。

按照步骤检查问题所在。

$ sudo docker login -u mrt https://gitlab.mydomain.com:5050

Error response from daemon: Get https://gitlab.mydomain.com:5050: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Run Code Online (Sandbox Code Playgroud)

检查连接:

$ nmap -p 5050 gitlab.mydomain.com

Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-12 14:15 +0330
Nmap scan report for gitlab.mydomain.com (x.x.x.x)
Host is up (0.057s latency).
rDNS record for x.x.x.x: x.x.x.x

PORT     STATE     SERVICE
5050/tcp filtered  mmcc

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
Run Code Online (Sandbox Code Playgroud)

创建 ssh 隧道:

$ ssh -p 26 -L 5050:gitlab.mydomain.com:5050 user@gitlab.mydomain.com
Run Code Online (Sandbox Code Playgroud)

然后:

$ sudo docker login -u mrt https://localhost:5050

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
Run Code Online (Sandbox Code Playgroud)