错误:在Docker中获取https://registry-1.docker.io/v2/时出现net/http:TLS握手超时

31

我查看了这个链接:Docker push - net/http: TLS handshake timeout,但它没有解决我的问题。我只是使用docker-compose up命令运行https://github.com/sqshq/PiggyMetrics

Status: Downloaded newer image for sqshq/piggymetrics-mongodb:latest
Pulling rabbitmq (rabbitmq:3-management)...
ERROR: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
[root@ech-10-1XXX PiggyMetrics]#
[root@ech-10-1XXX PiggyMetrics]# docker-compose up
Pulling rabbitmq (rabbitmq:3-management)...
ERROR: Get https://registry-1.docker.io/v2/library/rabbitmq/manifests/3-management: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Frabbitmq%3Apull&service=registry.docker.io: net/http: TLS handshake timeout

在上面的环境下部署并运行了代码:

uname -a

Linux ech-10-XXXX 4.1.12-61.1.18.el7uek.x86_64 #2 SMP Fri Nov 4 15:48:30 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux


似乎是网络问题。 - Jens
噢,好的,也许你是对的。等一段时间后再试试。 - Jeff Cook
11个回答

48

因为网络连接较慢,我遇到了同样的错误Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

一开始,切换到比较快的互联网连接并没有解决我的问题。然后我重新启动docker,问题得到了解决。

$ sudo systemctl restart docker

5
在 Windows 10 中,前往窗口左下角的 Docker 图标。右键单击 Docker,倒数第二个选项是重新启动 Docker。完成! - Uday Chauhan
谢谢,这对我非常有效。但是该死!为什么我们必须真的重新启动?我希望Docker的新版本可以解决这个问题。 - mostafa.S
1
它对我不起作用。我有Docker版本20.10.21,构建baeda1f。 - Hung Tran

5

原因是我所在地区的网络政策。您可以更改镜像地址并尝试,对我而言,我更改了镜像地址,它就可用了。我正在使用macOS Catalina:

"registry-mirrors" : [
    "https://dockerhub.azk8s.cn"
  ]

希望这可以帮到你。

在此输入图片描述


4

在docker-engine选项卡下添加debug: true,然后重新启动docker。这对我在MAC M1上有效。enter image description here


3

尝试更换您的网络连接方式。 如果您正在使用WiFi,请尝试使用有线局域网连接。


3

大多数情况下,这是因为我的互联网连接较慢。请检查您的互联网连接并重试。


在下载一个大小为600Mb的Docker镜像时遇到了相同的问题。看起来我的网络很慢,我不得不切换到快速网络才解决了这个问题。 - Bereket Belete

1
我遇到了同样的问题。在Docker Desktop macOS Catalina上重置Demon设置后问题得以解决。希望这个方法对你有用。
可能的解决方案:
  1. 检查网络速度并连接到更快的网络

  2. 重新启动Docker

  3. 重置Demon设置

enter image description here


0
在RHEL上,请尝试:
# docker login
Login with your Docker ID to push and pull images from Docker Hub. 
If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: xxxx
Password: xxxx

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

它运行得很好。

有时候你可以拉取很多图片,通常每6个小时你可以免费拉取200张图片。不要问我为什么需要这个连接,我认为docker需要这个连接。


0

如果您所在的地区受到 Docker 服务器限制,需要使用代理。


0
在我的情况下,/etc/hosts有一个条目需要被删除,因为它总是指向错误的docker.io条目。虽然这很傻,但花了一些时间才弄清楚。

0

在Windows上,尝试重启Docker守护进程。

然后在终端中使用您的Docker ID docker login 登录...

对我来说起作用了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接