docker之pull失败。error pulling image configuration: download failed after attempts=6: dial tcp 108.160.170.26:443: connect: connection refused

一、问题描述

docker部署完成后,想pull项目,但是就是报错:error pulling image configuration: download failed after attempts=6: dial tcp 108.160.170.26:443: connect: connection refused,

 

更奇葩的是执行docker search hello-world是可以的。

二、解决问题

1) 问题分析:看报错是timeout,所以肯定不是安装过程出了问题,所以不需要卸载重装。

2) 一般timeout就是网络的问题,先检查下自己网络

    2.2)防火墙

    systemctl status firewalld (是关闭的状态)   systemctl stop firewalld(如果没关闭,可以自行关闭)

    2.3)网络配置 

    检查自己IP的连通性,1)ping 虚拟机自己 (通) 2)ping 本地windows(通) 3)ping外网 www.baidu.com(通),所以说明网络也没问题

    2.4)IP配置  /etc/sysconfig/network-scripts/ifcfg-ens33  看DNS是否正确 看BOOTPROTO=static

   2.5)HOSTS配置  /etc/hosts

    红框的是下面的操作要讲到的,此时可以先忽略。

到这里,已经排查的几处,全部正常,但docker还是无法pull,然后想会不会是镜像源的问题,所以继续找问题。

    2.6)检查docker的配置,先修改国内镜像。其实刚部署好docker的时候,我就已经调整docker的镜像源是阿里的,后来又在网上找了很多国内镜像源,但是都没效果,这里让我一度认为,可能不是镜像源的问题。

    2.6.1)新建/etc/docker/darmon.json文件,并编辑。这里是用的阿里镜像源,具体的操作办法很简单,这里不做赘述,需要的话网上有很多思路办法。我这里要说的是,针对docker无法pull的解决办法网上百分之八十都是说改成国内镜像源解决了,不否认一部分人确实这么做了之后就通了,但此时遇到的问题不是。先继续说踩坑思路

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

    编辑保存文件后,执行docker命令识别并重启服务:

    1)sysemctl daemon-reload 2)systemctl restart docker 3)检查是否更换镜像源成功 docker info (成功的话,应该可以看到修改后的镜像源出现在末端位置。)

    2.7)此时再次尝试docker pull项目 ,不出意外的还是出意外了,依旧报错TIMEOUT。继续网上冲浪找答案,又看到一些说可能是DNS的问题,所以又调整/etc/hosts添加8.8.8.8 114.114.114.114,但还是不行。

    2.8)尝试调大docker pull的超时时间,还是在daemon.json文件中编辑

{
     "max-concurrent-downloads": 10,
     "max-concurrent-uploads": 5,
     "default-shm-size": "1G",
     "debug": true,
     "experimental": false,
     "registry-mirrors":[
                "https://x9r52uz5.mirror.aliyuncs.com"
        ]
}

  2.8.1)然后继续daemon-reload ,继续restart docker,然后继续尝试docker pull,还是不行。

    2.9)然后又查到可能是虚拟机DNS的问题,编辑修改/etc/resolv.conf

 

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114

添加114后继续尝试,还是不行。

此时,感觉问题还是研究都不够透彻,上面做的一切,有可能是跑偏了,问题到底出在哪里了呢,然后又看到新的理解,从国外国内的网络连通性出发。

2.10)看了网上大神的建议,说安装工具进行网络适配性自匹配

2.10.1)安装dig

yum install bind-utils

2.10.2)查看可用IP dig@114.114.114.114 registry-1.docker.io

 2.12.3)将可用IP全部加入/etc/hosts中,即上面提到的暂时忽略的内容,然后1)重启网络 sysemctl restart network 2)重启systemctl restart docker

 尝试docker pull后还是失败了,有点摸不着头脑了,但是还是去想是不是针对的方向偏差了,抛开之前的探索,看报错信息就是timeout,可能就是网络的问题,自己的网是可以通的,我又尝试连接手机热点,还是不行。所以是不是一直没去调整的镜像源有问题呢?网上大家都在说,timeout就改国内镜像,阿里,网易,中科院等。我之前也尝试了5、6个国内镜像源,但是都失败了。我开始想要不要配置代理尝试了。

正好周五下班了,不管了先迎接愉快周末吧。烦恼斯道普。

周一的上午,坐下来心平气和继续想问题的解决办法,感觉秋天也要来了,风里掺杂了丝丝凉意。

突然看到在某个大神的评论区里,出现了另外的思路,尝试换镜像源!!!

三、问题解决

开源的世界,热心的程序猿,感谢组织,这次居然是在评论区找到困扰多时的答案。

 

出于没办法的办法,尝试切换镜像源。结果出人意料的,docker pull居然成功了。果然不能钻牛角尖,当天解决不了的事,可能明天就解决了。不要内耗自己。

镜像源放下面了。

{
     "max-concurrent-downloads": 10,
     "max-concurrent-uploads": 5,
     "default-shm-size": "1G",
     "debug": true,
     "experimental": false,
     "registry-mirrors":[
                "https://x9r52uz5.mirror.aliyuncs.com",
                "https://dockerhub.icu",
                "https://docker.chenby.cn",
                "https://docker.1panel.live",
                "https://docker.awsl9527.cn",
                "https://docker.anyhub.us.kg",
                "https://dhub.kubesre.xyz"
        ]
}

  四、完结撒花

铁打的程序猿,永远的HELLO-WORLD!

 

 

 

  

 

posted @ 2024-08-12 11:33  明明就-  阅读(4421)  评论(10编辑  收藏  举报