文章目錄
- 前言
- 可用鏡像源匯總
- 換源方法1-臨時換源
- 換源方法2-永久換源(推薦)
- 常見問題及對應解決方案
- 1.換源后,可以成功pull,但是search會出錯
- 補充
- 1.如何測試鏡像源是否可用
- 2.Docker內的Linux換源教程
- 換源速通版(可以直接無腦復制粘貼)
前言
??? 如果您對這篇文章感興趣,可以點擊【導航頁 - 訪客必讀】一文囊括主頁所有優質博客 查看更多優質內容,希望可以幫您解決更多問題~。 ???
由于各種網絡政策,在國內訪問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為例,其余操作系統同理。
- 創建目錄(如果已經有該目錄,則忽略此步驟)
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
出現下圖,即為成功!