Docker报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp 128.242.240.85
现象
在拉取MySQL镜像时报错,ping baidu.com是通的,说明不是网络的问题
原因
docker拉不动或者没有国内镜像导致
解决
配置国内镜像源
在 /etc/docker/daemon.json 文件中添加或修改镜像源,如果没有该文件可以新建一个,将如下内容复制进去:
{
"registry-mirrors": [
"https://docker.m.daocloud.io/",
"https://huecker.io/",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru/",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://xx4bwyg2.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
重启docker使配置生效:
systemctl daemon-reload
systemctl restart docker
再次尝试拉取镜像,成功。
如果到这里还是无法拉取镜像,可以看一下DNS客户机的配置文件:
cat /etc/resolv.conf
新增DNS如下:
nameserver 114.114.114.114
修改完成后刷新配置重启网络生效:
systemctl restart network
然后再次尝试拉取镜像,应该就能解决了。
补充说明
resolv.conf:/etc/resolv.conf是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。
关键参数:
nameserver:配置DNS服务器地址,依顺序查询,只有当第一个nameserver没有反应时才查询下面的nameserver
domain :声明主机的域名,当查询不完全的域名时主机名将被使用(相当于search的默认值)
search :它的多个参数指明域名查询顺序。当查询不完全的域名时会使用到(domain和search不能共存)。
sortlist :允许将得到域名结果进行特定的排序,一个是在 resolv.conf 中配置的,一个是在 server 端配置的,主要功能就是当响应的 answer 部分含有多个地址时,优先返回那个。