Docker镜像拉取失败?魔法盒子当然有它的打开方式啦

上篇文章介绍了Docker这个魔法盒子,好用是真好用,不过去年开始Docker Hub被国内防火墙给穿小鞋了,如果大家直接使用docker pull从docker hub拉取镜像,大概率是拉不下来的,这个老玩家一般是知道的,也知道怎么解决,但是新手的话,可能就迷茫了。

微信图片_20250428220349.png

今天就给新手玩家介绍一下怎么拉取镜像继续玩Docker。

因为Docker服务器在国外,之前国内就有不少公共镜像加速站点。但是去年起这些公共镜像站也都陆续下线了。

目前还有一些公共或个人提供的镜像加速站点,以下两个是目前亲测可用的长期稳定的Docker镜像加速地址。

1
2
https://docker.1ms.run
https://docker.1panel.live

还有一些目前测试可用的:

1
2
https://docker-0.unsee.tech
https://docker.hlmirror.com

如果大家发现拉取镜像失败,可能需要更换新的镜像地址了。可以自己网上搜索更换。

如何配置Docker镜像加速

1. 手动指定镜像地址

如果是用的Linux系统,在使用命令行拉取镜像时,可以直接指定国内镜像站地址(镜像站点名称不加https://),格式为:docker pull 镜像站点名称/镜像名称:标签。标签相当于镜像的版本,一般如果不带标签,会自动默认拉取latest标签。

命令示例:

  • 原始拉取命令:docker pull docker.1ms.run/hello-world
  • 手动指定镜像站命令:docker pull docker.1ms.run/hello-world

宝塔里示意操作及结果如下:

微信图片_20250429100542.png

这种方法比较麻烦,每次都需要指定镜像源,适合临时用用,经常使用的话,可以通过修改配置文件来更换镜像源,这样每次都直接用原始的拉取方法就行了。

2. Linux系统修改Docker镜像源

一般的NAS系统都是基于Linux的。编辑 Docker 配置文件,文件位置: /etc/docker/daemon.json,如果没有这个文件的话,可以自己创建一个,添加镜像地址,可以使用多个镜像源,按以下json格式填入镜像源地址。

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.1panel.live",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}

要注意json文件格式写法,换行最后一行是没有逗号,的,新手容易犯这个错误,别问我咋知道😂

然后后重启服务:

1
sudo systemctl restart docker

再使用正常的拉取命令,就可以了。

微信图片_20250429100059.png

3. Windows/macOS系统修改Docker镜像源

如果你是使用的Windows或者macOS安装的Docker Desktop。

打开 Docker Desktop → 设置(Settings)→ Docker引擎(Docker Engine), 在配置文件最外层大括号内添加和上步Linux系统daemon.json文件里添加的内容一样,但是不包括大括号。另外还是要注意json文件格式写法。

由于我电脑没有安装Docker desktop,这里借两张网上的图说明一下。

这张是正确的方式:

111a37a719184f45948342a980a6122f.png

这张是不正确的方式:

v2-ea244b43bbc3ca46a0fa084112af0ad1_r.png

他的写法就不对,报错了。在原来的末行后添加的,忘记在false后面加个,逗号了。写多个地址时可以像上一张图那样,中括号内可以换行,换行加,逗号,最后一行不加,逗号。反正记着同一层级内换行都要加,,最后一行不加。

最后记得点击右下角 Apply & Restart 重启 Docker。

然后使用正常拉取就行了。

通过以上方法,大部分 Docker Hub 连接不上拉不了镜像的问题都可以解决!大家还是可以愉快地玩Docker的🐳

附两个国内Docker镜像检测的站点,大家如果镜像源失效拉不下来,可以去这里看看有没有可用的。

国内 Docker 服务状态 & 镜像加速监控

境内 Docker 镜像状态监控