Docker镜像拉取失败?魔法盒子当然有它的打开方式啦
Docker镜像拉取失败?魔法盒子当然有它的打开方式啦
JonyLee上篇文章介绍了Docker这个魔法盒子,好用是真好用,不过去年开始Docker Hub被国内防火墙给穿小鞋了,如果大家直接使用docker pull
从docker hub拉取镜像,大概率是拉不下来的,这个老玩家一般是知道的,也知道怎么解决,但是新手的话,可能就迷茫了。
今天就给新手玩家介绍一下怎么拉取镜像继续玩Docker。
因为Docker服务器在国外,之前国内就有不少公共镜像加速站点。但是去年起这些公共镜像站也都陆续下线了。
目前还有一些公共或个人提供的镜像加速站点,以下两个是目前亲测可用的长期稳定的Docker镜像加速地址。
1 | https://docker.1ms.run |
还有一些目前测试可用的:
1 | https://docker-0.unsee.tech |
如果大家发现拉取镜像失败,可能需要更换新的镜像地址了。可以自己网上搜索更换。
如何配置Docker镜像加速
1. 手动指定镜像地址
如果是用的Linux系统,在使用命令行拉取镜像时,可以直接指定国内镜像站地址(镜像站点名称不加https://),格式为:docker pull 镜像站点名称/镜像名称:标签
。标签相当于镜像的版本,一般如果不带标签,会自动默认拉取latest
标签。
命令示例:
- 原始拉取命令:
docker pull docker.1ms.run/hello-world
- 手动指定镜像站命令:
docker pull docker.1ms.run/hello-world
宝塔里示意操作及结果如下:
这种方法比较麻烦,每次都需要指定镜像源,适合临时用用,经常使用的话,可以通过修改配置文件来更换镜像源,这样每次都直接用原始的拉取方法就行了。
2. Linux系统修改Docker镜像源
一般的NAS系统都是基于Linux的。编辑 Docker 配置文件,文件位置: /etc/docker/daemon.json
,如果没有这个文件的话,可以自己创建一个,添加镜像地址,可以使用多个镜像源,按以下json格式填入镜像源地址。
1 | { |
要注意json文件格式写法,换行最后一行是没有逗号,
的,新手容易犯这个错误,别问我咋知道😂
然后后重启服务:
1 | sudo systemctl restart docker |
再使用正常的拉取命令,就可以了。
3. Windows/macOS系统修改Docker镜像源
如果你是使用的Windows或者macOS安装的Docker Desktop。
打开 Docker Desktop → 设置(Settings)→ Docker引擎(Docker Engine), 在配置文件最外层大括号内添加和上步Linux系统daemon.json
文件里添加的内容一样,但是不包括大括号。另外还是要注意json文件格式写法。
由于我电脑没有安装Docker desktop,这里借两张网上的图说明一下。
这张是正确的方式:
这张是不正确的方式:
他的写法就不对,报错了。在原来的末行后添加的,忘记在false后面加个,
逗号了。写多个地址时可以像上一张图那样,中括号内可以换行,换行加,
逗号,最后一行不加,
逗号。反正记着同一层级内换行都要加,
,最后一行不加。
最后记得点击右下角 Apply & Restart 重启 Docker。
然后使用正常拉取就行了。
通过以上方法,大部分 Docker Hub 连接不上拉不了镜像的问题都可以解决!大家还是可以愉快地玩Docker的🐳
附两个国内Docker镜像检测的站点,大家如果镜像源失效拉不下来,可以去这里看看有没有可用的。