docker联网、拉取镜像慢、报错:Error response from daemon Get xxx request canceled while waiting for connection (
症状:1,拉取镜像慢,只有关闭docker service,打开dockerd --debug之后才能拉取2,不关闭docker service拉取不了,报错:Error response from daemon: Get nvcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exc
注意:
- 以下操作仅适用于在公司内网条件下加速拉取外网的镜像的情况,即:需要连接外网,将配置改为外网(不使用内网代理)等。
- 如果你就想通过内网和内网代理的方式拉取外网镜像,但是报了同样的错,那下面的步骤可能要反过来。比如DNS要从8888改回你内网应该用的DNS等等。
症状:
拉取镜像慢/拉取不了(无法联网)
- 关闭docker service (
sudo systemctl stop docker
),打开dockerd debug(sudo dockerd --debug
)的条件下能够拉取(这时候可能是连的国外服务器,而不是国内镜像,即使你在dameon.json中配置了) - 不关闭docker service拉取不了,报错:
Error response from daemon: Get nvcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
说明联网有问题。
- 测试联网是否正常:
sudo docker search sameersbn
。如果联网有问题,会报错:
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 10.xxx.xxx.xxx:8080: server misbehaving
这里出现的IP地址可能就是你之前设置过的docker联网代理地址
解决:
- 提高速度:
- 加入国内镜像源。连接这些镜像源的时候可能使用外网比使用公司内网(需要加代理)更快。
动态获取阿里源
-
提高并发数
https://blog.csdn.net/BigData_Mining/article/details/88871748 -
解决联网:去掉内网代理(这样才能更快连外网),
- 在 ~/.bashrc和/etc/profile中注释掉代理设置,并source
- 在 /etc/docker/dameon.json中设置dns为 8.8.8.8
dameon.json如下:
{
"runtimes":{
"nvidia":{
"path": "nvidia-container-runtime",
"runtimeArgs":[]
}
},
"registry-mirrors": [
"http://f1361db2.m.daocloud.io",
"https://f3lu6ju1.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://a8qh6yqv.mirror.aliyuncs.com"
],
"max-concurrent-downloads":20,
"data-root": "/data/docker/lib/docker",
"dns": ["8.8.8.8"]
}
-
删除 /etc/systemd/system/docker.service.d/http-proxy.conf中的代理设置,这一步很重要。这个文件夹可能是自己之前新建的。docker可能不自带
-
也可能是找不到hostname,这需要你在/etc/hosts中手动加入这些地址:
1)通过dig @114.114.114.114 <some_host_name>
找到地址(<some_host_name>)对应的IP 2)在/etc/hosts
中加入这些地址和IP
https://segmentfault.com/a/1190000016083023 -
重启docker:1)
sudo systemctl dameon-reload
3)sudo systemctl restart docker
2)service docker restart
更多推荐
所有评论(0)