Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

2022年6月16日10:13:56

   最近因为需要装模型验证工具PRISM,就下载了docker。在windows上装docker时出现了问题,就在MAC上装的。具体怎么装的可以参考:https://blog.csdn.net/qq_35119422/article/details/81357626。我是从https://download.docker.com/mac/stable/Docker.dmg上下载的稳定版的。具体的安装不是此博客的重点,因为我所讲的是出错以后怎么解决的问题,选择性忽略掉安装的过程。

1. docker镜像出错问题

1.1前提:

      我的设备是MAC OS Catalina 10.15(PS:以前是Mac OS Sierra,后来因为xcode的问题,升级到了Catalina)。

1.2 问题描述:

     我在安装docker之后,开始安装prism,执行命令

docker pull mseve/prism

出现了错误:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout。

     于是我执行docker ps和docker images时都没有问题。在执行docker info时面临的问题也是Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout。

1.3 解决方案

我尝试的办法有两种,一是在配置文件里改镜像;二是在Daemon里改镜像。

1.3.1在配置文件里改镜像

第一步:通过dig @114.114.114.114 registry-1.docker.io找到可用IP

;; ANSWER SECTION:
registry-1.docker.io. 3600 IN A 54.164.230.151
registry-1.docker.io. 3600 IN A 35.169.231.249
registry-1.docker.io. 3600 IN A 34.205.207.96
registry-1.docker.io. 3600 IN A 34.200.28.105
registry-1.docker.io. 3600 IN A 52.204.202.231
registry-1.docker.io. 3600 IN A 54.152.209.167
registry-1.docker.io. 3600 IN A 52.22.181.254
registry-1.docker.io. 3600 IN A 52.54.216.153

第二步:尝试修改/etc/hosts强制docker.io相关的域名解析到其它可用IP

vim /etc/hosts

插入一行

54.164.230.151 registry-1.docker.io

保存之后,再多次执行命令:docker pull mseve/prism。

我的结果:执行一次docker pull mseve/prism,继续报错;执行两次,继续报错。执行三次,不报错了,但是下载速度很慢。于是我尝试了下边第二种方法

1.3.2 在Daemon里改镜像

在Mac系统的桌面Docker中安装如下操作,Prefereces => Daemon => Basic => Registry mirrors => 输入http://141e5461.m.daocloud.io => Apply & Restart,操作结束。

然后在运行docker pull mseve/prism,结果:正常运行。

2 结论

注:此方法是在Mac系统Catalina下尝试的结果,第一种方法没有第二种方法好。Unix和Windows未尝试。

  • 作者:丽娃河畔
  • 原文链接:https://blog.csdn.net/ecnuThomas/article/details/102894380
    更新时间:2022年6月16日10:13:56 ,共 1527 字。