遇到的问题

今天在使用docker pull nginx获取nginx镜像的时候遇到了网络超时的问题,提示Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/latest: net/http: TLS handshake timeout

或者提示:......registry.docker.io: net/http: TLS handshake timeout

百度的结果

很多人说通过dig @114.114.114.114 registry-1.docker.io获取到可用的域名解析地址,然后将地址添加到/etc/hosts中,如下:

52.5.185.86 registry-1.docker.io​​​​​​​

说保存之后重试几次就行。

但我试了几次,dig出来的结果都在变化,重新docker pull 之后仍然提示超时,郁闷的很。

解决方法

我的解决方法是通过阿里云的镜像加速器(阿里云比中国官方镜像还要快)。

阿里云的容器镜像服务地址为:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

没有账号的可以免费注册一个。然后找到容器镜像服务,就是上述的地址。查看自己的镜像加速器地址并复制。

复制好地址后,我们可以参考以上的配置镜像加速器步骤,做如下操作:

编辑配置文件/etc/docker/daemon.json,添加registry-mirrors条目(值得注意的是,我们是第一次编辑该文件,该文件是新增的)。

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://XXXXXXX.mirror.aliyuncs.com"]
}

修改好之后,保存,重启加速器,重启docker。

systemctl daemon-reload

systemctl restart docker

然后再次下载,可看到镜像已经快速下载完成了。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐