全部报错内容为:
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).
有几种可能的原因,一是 : 由于是在虚拟机部署的docker,同时又是在国内,因此需要加镜像加速器:Docker-镜像加速器
然后整体步骤可以按这个知乎的回答来:https://zhuanlan.zhihu.com/p/687737905 ,就是他的加速镜像不好使可以用上面链接提供的镜像加速器或者下述这个:
vi /etc/docker/daemon.json
# 进入json,改成:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
修改后,重启docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
然后 通过执行 docker info 查看 mirrors 是否设置成功:
上图所示就是设置成功啦
然后,就是踩坑的地方了!!!!!
此时尝试 docker search nginx ,还是有问题,还是报这个错
但是,不要再改其他配置了,有一种可能是:search 这个命令不走国内镜像,你试一下 docker pull 这个命令呢,
如果 docker pull nginx 执行成功,那你也就不用改了,原因和我一样,就是search 这个命令的问题,,,,,
如果还是不行,那就继续,按照 (28 封私信 / 36 条消息) 解决虚拟机中的Docker无法拉取镜像 - 知乎
还需需要设置 servername :
如果不正常则执行:
sudo vi /etc/resolv.conf
写入以下内容
nameserver 8.8.8.8
nameserver 114.114.114.114
重启
sudo systemctl daemon-reload
sudo systemctl restart docker