前言
由於各種網路政策,在國內訪問DockerHub速度會非常緩慢,大家一般都會採取更換映象源的方式來進行加速。
但是,2024.6之後,由於政策的加強,大部分常見的映象源已經無法使用,如下圖:

因此,筆者透過各種途徑蒐集了目前可用的映象源,給出了詳細的換源步驟以及映象源彙總列表,並將定期進行測試與更新 ! (文末也給出了換源的速通版)
可用映象源彙總
下列資訊收集於網際網路,並非筆者本人搭建,所以無法保證一直有效,建議同時配置多個映象源。
有些映象源映象不全或者只允許內部訪問,所以如果某個映象源無法拉取到您所需的映象,更換另一個即可。
截止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”,
sudodocker
pull docker.m.daocloud.io/hello-world
成功拉取,如下圖:

注意:此方法每次拉取映象時都需要指定相應的映象源
換源方法2-永久換源(推薦)
核心思想:修改docker的配置檔案
daemon.json
,將映象源地址寫入其中。以ubuntu22.04為例,其餘作業系統同理。
-
建立目錄(如果已經有該目錄,則忽略此步驟)
sudomkdir-p
/etc/docker
知識點補充:新增“-p”,執行此命令會先檢查目錄是否存在。若不存在,則建立相應目錄;否則,不執行任何操作。因此不管是否有該目錄,直接執行此命令都沒問題,不會報錯。
-
向配置檔案寫入映象源
格式如下:(需要加上字首
https://
)
{
"registry-mirrors":
[
"映象源1"
,
"映象源2"
]
}
例如,根據2025.3.16最新測試的可用映象源,我在此給出命令列和文字編輯器兩種操作方法。
特別提醒,不管
daemon.json
檔案是否存在,下列兩種方法均可直接使用,不會報錯。-
方法一:直接命令列輸入
直接將下列文字貼上到終端中,然後回車執行即可。
sudotee /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
,然後貼上
首先開啟配置檔案:
sudonano
/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
-
驗證
sudodocker
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系統的軟體源以獲得更快的下載速度呢?
可以參考此以下教程
https://blog.csdn.net/qq_73162098/article/details/145146182
換源速通版(可以直接無腦複製貼上)
-
建立目錄
sudomkdir-p
/etc/docker
-
配置映象源
sudotee /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
-
驗證
sudodocker
pull hello-world
出現下圖,即為成功!

連結:https://blog.csdn.net/qq_73162098/article/details/145014490?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-12-145014490-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-12-145014490-null-null.nonecase
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組





······



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

100%免費領取
(後臺不再回復,掃碼一鍵領取)