ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

docker修改/etc/docker/daemon.json文件后registry-mirrors不生效问题

docker修改/etc/docker/daemon.json文件后registry-mirrors不生效问题

问题:在docker build阶段发现镜像拉取不成功,但是通过ping和curl都能通,测试了一下直接 docker pull mysql 以及其他常用镜像都无法成功。

于是修改/etc/docker/daemon.json的registry-mirrors

{"registry-mirrors": ["https://et65ei2t.mirror.aliyuncs.com","http://docker.registry.cyou","http://dhub.kubesre.xyz","https://dockerpull.com","https://docker.m.daocloud.io","https://dockerproxy.com","https://dockerhub.icu","https://hub.rat.dev","https://docker.1panel.live","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"insecure-registries": ["211.65.102.40:5000","211.65.102.40:5001","10.2.0.120:5000"]
}

成功后通过如下命令重启docker以让配置生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

通过如下命令查看镜像源是否更新成功:

docker info | grep "Registry Mirrors"

发现根本没有输出或者还是旧的镜像源。

这是因为:有时候docker服务不光有docker.service,停止掉docker.service之后还能通过docker.socket运行,因此需要彻底停止然后重启:

sudo systemctl stop docker.service
sudo systemctl stop docker.socket

停止之后查看docker状态:确保是不运行的状态

sudo systemctl status docker

然后重启docker

sudo systemctl start docker

查看是否配置成功:

docker info | grep "Registry Mirrors"

就可以显示出新配制的镜像源了。拉取一个镜像测试一下:

docker pull nginx

后面就可以正常构建项目,可以拉取成功了。

返回列表