很多同学在执行DockerFile的时候,拉取一些jdk或其他的基础镜像超时失败。造成这个问题的主要原因就是Docker默认的镜像仓库是DockerHub,国内是连不上的,这时候我们就需要换镜像仓库了,下面就是我整理好的,总有一个能拉取成功的。
如果你是windows版本的docker desktop,可以在下面设置
下面是完整的json
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": true,
"registry-mirrors": [
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
如果你是linux系统,则可在/etc/docker目录下修改daemon.json文件。把"registry-mirrors"的值改成上述仓库即可。
改完之后记得重启docker,这样才会生效。
总结:如果你改了仓库地址发现还是拉取不到镜像,首先要确保镜像仓库的地址是否连的上并且仓库有此镜像。docker机制是如果所有源都拉不到镜像,它则会使用默认的仓库地址再去拉取。所以看到报错的地址不是你换的仓库地址,不要怀疑自己换的仓库地址有没有生效。本人就踩了这个坑,浪费了很多时间。