问题描述
已经按照网上的方法正确配置了/etc/docker/daemon.json,并且docker info中也可以看到自己配置的Registry Mirrors。
但是拉取镜像时,仍提示:
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded
问题关键就是要正确重启docker,以及重载daemon。
具体步骤
1、按如下步骤配置镜像源
修改镜像源配置文件daemon.json
sudo vim /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"
]
}
检查文件是否正确
cat /etc/docker/daemon.json
2、检查网络配置
查看是否配置了正确的nameserver。
cat /etc/resolv.conf
如果网络解析正常(如ping baidu.com),可以忽略此步。
如果网络解析异常,修改/etc/resolv.conf的nameserver字段如下:
nameserver 114.114.114.114
nameserver 8.8.8.8
3、重启docker(严格按顺序执行以下命令)
很多教程都提到了要重启docker服务(最后一条命令),但是经过摸索和踩坑后发现:
必须要先停止所有东西,再重载daemon。这样才可以正常拉取镜像。
sudo systemctl stop docker.service
sudo systemctl stop docker.socket
sudo systemctl daemon-reload
sudo systemctl restart docker
检查镜像源是否读取成功
sudo docker info | awk '/Registry Mirrors:/,/^[^ ]/'
或者
sudo docker info
可以看到这样的内容时,表示镜像源已经正常读取了。
4 执行拉取命令
再次执行之前的命令,拉取镜像发现可以拉取成功了。
原文始发于微信公众号(篝火信安):Docker配置了daemon镜像源但未生效,仍走默认源的解决办法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论