Docker配置了daemon镜像源但未生效仍然走https://registry-1.docker.io/v2/解决方案_daemon.json配置不生效
目录
问题描述
1 按如下步骤配置镜像源
修改/etc/docker/daemon.json
检查文件是否正确
2 严格按顺序执行以下命令
重启docker
检查镜像源是否读取成功
3 执行拉取命令
问题描述
已经正确配置了/etc/docker/daemon.json,并且docker info中也可以看到自己配置的Registry Mirrors。
但是拉取镜像时,提示: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,以及重载daemon。已经配置好镜像源的同学可以直接点击跳至:2 严格按顺序执行以下命令
1 按如下步骤配置镜像源
修改/etc/docker/daemon.json
cd /etc/dockerVim daemon.json
daemon.json文件内容:
{ \"registry-mirrors\": [ \"https://docker.1ms.run\", \"https://docker.domys.cc\", \"https://docker.imgdb.de\", \"https://docker-0.unsee.tech\", \"https://docker.hlmirror.com\", \"https://cjie.eu.org\", \"https://docker.m.daocloud.io\", \"https://hub.rat.dev\", \"https://docker.1panel.live\", \"https://docker.rainbond.cc\" ]}
检查文件是否正确
[root@192 docker]# cat /etc/docker/daemon.json { \"registry-mirrors\": [ \"https://docker.1ms.run\", \"https://docker.domys.cc\", \"https://docker.imgdb.de\", \"https://docker-0.unsee.tech\", \"https://docker.hlmirror.com\", \"https://cjie.eu.org\", \"https://docker.m.daocloud.io\", \"https://hub.rat.dev\", \"https://docker.1panel.live\", \"https://docker.rainbond.cc\" ]}
2 严格按顺序执行以下命令
重启docker
很多教程都提到了要停止服务和socket,但是经过漫长的摸索和踩坑,在反复执行这些命令以后发现:
必须要先停止所有东西,在重载daemon。这样才可以正常拉取镜像。
sudo systemctl stop docker.servicesudo systemctl stop docker.socketsudo systemctl daemon-reloadsudo systemctl restart docker
检查镜像源是否读取成功
执行
docker info | awk \'/Registry Mirrors:/,/^[^ ]/\'
或者也可以直接执行
docker info
可以看到这样的内容时,表示镜像源已经正常读取了
3 执行拉取命令
执行命令
docker pull [镜像名]
例如:
docker pull mysql
可以看到已经能正常拉取镜像了