Docker換源加速(更換鏡像源)詳細教程(2025.3最新可用鏡像,全網最詳細)
前言
由于各種網絡政策,在國內訪問DockerHub速度會非常緩慢,大家一般都會采取更換鏡像源的方式來進行加速。
但是,2024.6之后,由于政策的加強,大部分常見的鏡像源已經無法使用,如下圖:

因此,筆者通過各種途徑搜集了目前可用的鏡像源,給出了詳細的換源步驟以及鏡像源匯總列表,并將定期進行測試與更新?!?(文末也給出了換源的速通版)
可用鏡像源匯總
下列信息收集于互聯網,并非筆者本人搭建,所以無法保證一直有效,建議同時配置多個鏡像源。
有些鏡像源鏡像不全或者只允許內部訪問,所以如果某個鏡像源無法拉取到您所需的鏡像,更換另一個即可。
截止2025.3.16,下列鏡像源均可用。(基于能否成功拉取hello-world
進行測試)
DockerHub可用鏡像源匯總 |
---|
http://docker.m.daocloud.io |
http://docker.imgdb.de |
docker-0.unsee.tech |
http://docker.hlmirror.com |
docker.1ms.run |
func.ink |
http://lispy.org |
http://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為例,其余操作系統同理。
- 創建目錄(如果已經有該目錄,則忽略此步驟)
sudo mkdir -p /etc/docker
知識點補充:添加“-p”,執行此命令會先檢查目錄是否存在。若不存在,則創建相應目錄;否則,不執行任何操作。因此不管是否有該目錄,直接執行此命令都沒問題,不會報錯。
- 向配置文件寫入鏡像源
格式如下:(需要加上前綴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
的文件。
- 重啟docker服務
sudo systemctl daemon-reload && sudo systemctl restart docker
- 驗證
sudo docker pull hello-world
出現下圖,即為成功!

常見問題及對應解決方案
歡迎大家將自己遇到的問題回復在評論區中,我會積極解答并將其補充到博客中,大家共同進步!
1.換源后,可以成功pull,但是search會出錯
報錯如下圖:

先說結論:截止目前,除非科學上網(掛梯子),不然無法解決此問題
- 目前由于國內政策限制,國內網絡無法正常訪問DockerHub,只能借助鏡像站
- 目前各個可用的鏡像站均是對
pull
操作進行了加速優化,并沒有支持search
功能,所以對于search
操作來說,鏡像站無效
基于上述兩點,此問題無解(除非科學上網)。
如果您有可行的解決辦法,希望您及時私信或評論,造福大家!
補充
1.如何測試鏡像源是否可用
我們可以直接根據 ” 換源方法1-臨時換源 “ ,通過拉取hello-world
鏡像進行測試。
hello-world
?鏡像是 Docker 官方提供的一個最基礎的鏡像,用來測試 Docker 是否正常工作。無論你更換了哪個鏡像倉庫,hello-world
?鏡像都可以作為最基本的測試。
但是需要注意,hello-world
?鏡像是否可以正常拉取與鏡像源是否可用并不是完全對應的。
某些特殊的鏡像源可能并不支持hello-world
?,但支持某些其他鏡像。不過這是極少數的,
因此,通過hello-world
?鏡像是否可以正常拉取來判斷鏡像源是否可用,這是充分條件,而不是必要條件。
失敗拉取如下圖:

成功拉取如下圖:

當然,我們也可以通過其他鏡像來判斷,例如alpine
、busybox
等也是比較基礎且常見的鏡像源,具體不再贅述。
2.Docker內的Linux換源教程
我們進入到Docker容器后,將是與宿主機不同的另一個Linux系統,那么如何更換Docker內Linux系統的軟件源以獲得更快的下載速度呢?
可以參考此以下教程
換源速通版(可以直接無腦復制粘貼)
- 創建目錄
sudo mkdir -p /etc/docker
- 配置鏡像源
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
- 重啟docker服務
sudo systemctl daemon-reload && sudo systemctl restart docker
- 驗證
sudo docker pull hello-world
出現下圖,即為成功!

在這里插入圖片描述
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維沖擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高級運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有?20?個模塊

1.38張最全工程師技能圖譜

2.面試大禮包

3.Linux書籍

4.go書籍

······
6.自動化運維工具

18.消息隊列合集

以上所有資料獲取請掃碼
備注:最新運維資料

100%免費領取