彻底解决docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled 报错

报错

1. docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

2.Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp ip: connect: connection refused

吐槽一下:我这是在配置超级账本(hyperledger fabric)的时候出现的错误,我配置了大概5次吧,每次都是配置一上午的时间,所以总的来算花了大概整整3天的时间配置好的,其实每次都是这个问题出错,我没有解决,从网上查找方法根本就解决不了好吧,我不知道那些个大佬们是怎么解决的,反正我是看来好多的文章都是解决不了的,最后经过经历过相同问题的大佬指点,终于配好了

网上普遍的方法:

1换源:

        1.修改/etc/docker/daemon.json文件        

 vi /etc/docker/daemon.json

        2.导入镜像:(无论用上阿里云还是清华的镜像源都仍然ERROR)

  1. {
  2. "registry-mirrors": [
  3. "https://0dj0t5fb.mirror.aliyuncs.com",
  4. "https://docker.mirrors.ustc.edu.cn",
  5. "https://6kx4zyno.mirror.aliyuncs.com",
  6. "https://registry.docker-cn.com"
  7. ]
  8. }

        3.重启:

systemctl daemon-reload 
systemctl restart docker

2. 修改DNS服务配置

        1.如果DNS服务器出现问题,也可能导致拉取镜像报错。可以通过查看/etc/resolv.conf文件来检查DNS服务器设置:

cat /etc/resolv.conf

        2.如果显示nameserver后面没有IP地址,或者显示的IP地址有问题,可以尝试修改该文件。例如,可以将nameserver 192.168.100.2注释掉,新增nameserver 114.114.114.114和nameserver 8.8.8.8:

  1. #nameserver 192.168.100.2
  2. nameserver 114.114.114.114
  3. nameserver 8.8.8.8

3.还有一个手动拉取的:(仍然是报错)

docker pull 仓库名/镜像名:版本号
docker pull docker.mirrors.ustc.edu.cn/library/mysql

最后真的是折磨的受不了了,之前安装都是看的文章,突发奇想看看B站上有没有手把手教学的,你别说,这个人的还真挺好:

【从0开始快速安装Hyperledger Fabric】 https://www.bilibili.com/video/BV1g3411h71Z/?share_source=copy_web&vd_source=091687f403c0c0bd4d4e4c69de304943

但是还是不出意外,都是到./network.sh up报错,我真服了

原因:

其实上面的报错不是因为hyperledger fabric难装,而是从一开始docker就没配好,教程都只是讲解安装docker,在ubuntu上一般docker都会给一个代理,不然连不上网,也就导致一些文件下载不下来,毕竟这是人家国外的,这种问题真的是配环境的一大痛点。难绷了家人

解决方法:给docker配置一个代理:

说明一下:仅限于有自己的服务器,可以去阿里上买一个,或者可以科学上网

1. 在 /etc/systemd/system 目录下创建 docker.service.d 目录

sudo mkdir -p /etc/systemd/system/docker.service.d

2. 在该目录下创建 http-proxy.conf 文件

sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf

3. 选用你最喜欢的编辑器,编辑该文件并添加下面的内容,这里使用 vi/vim 进行编辑。

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

4.根据自身需要添加下面的内容并替换为实际的配置,一般只需要加 HTTP_PROXY 和 HTTPS_PROXY

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

【注】HTTP_PROXY 用于代理访问 http 请求,HTTPS_PROXY 用于代理访问 https 请求,如果想某个 IP域名不走代理则配置到 NO_PROXY中。

5. 这里就需要打开你的clash for windows了:

        1.在General,端口号一般都是7890,也可以自己修改

        2.这里把Allow LAN打开,鼠标放上会显示你的IP地址,我这里有两个是虚拟机网卡,因为是笔记本所以这里的WLAN2是无线网卡,第一个是本地连接IP,我刚开始使用的是本地连接但是不行,所以使用WLAN2代理,最笨的方法:每个都试一遍

        3.然后把TUN MODE打开,System Proxy打开,最后把Start with woindows打开,将配置文件内容的IP和port换成自己的即可,保存配置文件

6.刷新更改并重新启动 Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

恭喜,Docker Daemon 代理配置完成!这就可以运行./network.sh up了,接下来迎接你的将是一路畅通!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值