戳下方名片,关注并星标!
回复“1024”获取2TB学习资源!
👉体系化学习:运维工程师打怪升级进阶之路 4.0
— 特色专栏 —
MySQL / PostgreSQL / MongoDB
ElasticSearch / Hadoop / Redis
Kubernetes / Docker / DevOps
Nginx / Git / Tools / OpenStack
大家好,我是民工哥!
由于各种网络政策,在国内访问DockerHub速度会非常缓慢,大家一般都会采取更换镜像源
的方式来进行加速。
但是,2024.6之后,由于政策的加强,大部分常见的镜像源已经无法使用,如下图:

因此,笔者通过各种途径搜集了目前可用的镜像源,给出了详细的换源步骤以及镜像源汇总列表,并将定期进行测试与更新 ! (文末也给出了换源的速通版)。
对于不同的系统,本文使用到的对应命令可能不同,需要大家结合具体的系统来进行操作,博客有任何错误或者大家有任何问题,都可以直接在评论区留言~
本篇文章以Ubuntu22.04为例,如果您需要其他系统的换源教程,可以私信留言,我将尽可能为您更新相应系统换源的教程!
~如果我的博客成功解决了您的问题,烦请一件三连,不胜感激!~
可用镜像源汇总
下列信息收集于互联网,并非笔者本人搭建,所以无法保证一直有效,建议同时配置多个镜像源。
有些镜像源镜像不全或者只允许内部访问,所以如果某个镜像源无法拉取到您所需的镜像,更换另一个即可。
截止2025.3.16,下列镜像源均可用。(基于能否成功拉取hello-world
进行测试)
DockerHub可用镜像源汇总 |
---|
docker.m.daocloud.io |
docker.imgdb.de |
docker-0.unsee.tech |
docker.hlmirror.com |
docker.1ms.run |
func.ink |
lispy.org |
docker.xiaogenban1993.com |
注:据网友反映,阿里云镜像站的镜像未同步最新镜像源,即部分镜像拉取不到最新版,故不再写在汇总表中。
换源方法1-临时换源
格式如下:(不要加上前缀https://
)
sudo docker pull+镜像源地址+/+要拉取的镜像名
例如:镜像源为“docker.m.daocloud.io”,要拉取的镜像名为“hello-world”,
sudo docker pull docker.m.daocloud.io/hello-world
成功拉取,如下图:

注意:此方法每次拉取镜像时都需要指定相应的镜像源
换源方法2-永久换源(推荐)
核心思想:修改docker的配置文件 daemon.json
,将镜像源地址写入其中。
以ubuntu22.04为例,其余操作系统同理。
1.创建目录(如果已经有该目录,则忽略此步骤)
sudo mkdir -p /etc/docker
知识点补充:添加“-p”,执行此命令会先检查目录是否存在。若不存在,则创建相应目录;否则,不执行任何操作。因此不管是否有该目录,直接执行此命令都没问题,不会报错。
2.向配置文件写入镜像源
格式如下:(需要加上前缀https://
)
{
"registry-mirrors": [
"镜像源1",
"镜像源2"
]
}
例如,根据2025.3.16最新测试的可用镜像源,我在此给出命令行和文本编辑器两种操作方法。
特别提醒,不管daemon.json
文件是否存在,下列两种方法均可直接使用,不会报错。
方法一:直接命令行输入
直接将下列文本粘贴到终端中,然后回车运行即可。
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
EOF
知识点补充:<<-'EOF'
告诉 shell 接下来的所有内容会被传递到命令 tee
,直到遇到标记 EOF
为止,用于将多行内容作为输入传递给命令。所以不需要担心输入一行之后系统就开始执行命令。
此外,若daemon.json
文件不存在,直接使用tee
命令不会报错,而是会创建名为daemon.json
的文件。
方法二:通过文本编辑器打开daemon.json
,然后粘贴
首先打开配置文件:
sudo nano /etc/docker/daemon.json
然后直接粘贴下列内容:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
知识点补充:若daemon.json
文件不存在,直接使用nano
命令不会报错,而是会创建名为daemon.json
的文件。
3.重启docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
4.验证
sudo docker pull hello-world
出现下图,即为成功!

常见问题及对应解决方案
换源后,可以成功pull,但是search会出错
报错如下图:

先说结论:截止目前,除非科学上网(挂梯子),不然无法解决此问题
目前由于国内政策限制,国内网络无法正常访问DockerHub,只能借助镜像站
目前各个可用的镜像站均是对
pull
操作进行了加速优化,并没有支持search
功能,所以对于search
操作来说,镜像站无效
基于上述两点,此问题无解(除非科学上网)。
如果您有可行的解决办法,希望您及时私信或评论,造福大家!
补充
如何测试镜像源是否可用
我们可以直接根据 ” 换源方法1-临时换源 “ ,通过拉取hello-world
镜像进行测试。
hello-world
镜像是 Docker 官方提供的一个最基础的镜像,用来测试 Docker 是否正常工作。无论你更换了哪个镜像仓库,hello-world
镜像都可以作为最基本的测试。
但是需要注意,**hello-world
镜像是否可以正常拉取与镜像源是否可用并不是完全对应的**。
某些特殊的镜像源可能并不支持hello-world
,但支持某些其他镜像。不过这是极少数的,
因此,通过hello-world
镜像是否可以正常拉取来判断镜像源是否可用,这是充分条件,而不是必要条件。
失败拉取如下图:

成功拉取如下图:

当然,我们也可以通过其他镜像来判断,例如alpine
、busybox
等也是比较基础且常见的镜像源,具体不再赘述。
换源速通版(可以直接无脑复制粘贴)
1.创建目录
sudo mkdir -p /etc/docker
2.配置镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
EOF
3.重启docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker
4.验证
sudo docker pull hello-world
出现下图,即为成功!

来源:blog.csdn.net/qq_73162098/article/details/145014490
👍 如果你喜欢这篇文章,请点赞并分享给你的朋友!
公众号读者专属技术群
构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位,已在技术交流群的请勿重复添加微信好友)。主要以技术交流、内推、行业探讨为主,请文明发言。广告人士勿入,切勿轻信私聊,防止被骗。
扫码加我好友,拉你进群
OpenAI 真被逼急了!提交 15 页信函攻击 DeepSeek 求美国封杀中国 AI
打脸了!5 个人 3 小时复刻出开源版 Manus,邀请码也不要了
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!