我在将图像推送到注册表时遇到了这个问题。
我在安装的 Ubuntu docker 中使用 Ubuntu 服务器,在 docker 创建的 docker 注册表容器中使用 Ubuntu 服务器,当注册表与gitlab.
这两个gitlab和注册表是同一台服务器上。
我在同一个域下创建了一个注册表gitlab。
没有代码
获取 https://someurl:8000/v2/: net/http: 请求在等待连接时被取消(Client.Timeout exceeded while awaiting headers)
我收到了类似的错误消息:
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)
问题消失了。
由于目标不可达问题而遇到此错误。这意味着该端口可能被本地或外部防火墙过滤,或者作为另一个答案,机器的 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)
| 归档时间: |
|
| 查看次数: |
27577 次 |
| 最近记录: |