现象

在拉取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 部分含有多个地址时,优先返回那个。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐