#記錄工作
Windows系統
在使用 Docker 的過程中,許多用戶會碰到設置了國內鏡像源后,依舊無法拉取鏡像的情況。接下來,記錄了操作要點以及問題排查方法,幫助我們順利解決這類問題。
Microsoft Windows [Version 10.0.27823.1000]
(c) Microsoft Corporation. All rights reserved.(.venv) F:\PythonProjects\firecrawl>docker compose build
time="2025-04-17T11:17:29+08:00" level=warning msg="The \"MODEL_EMBEDDING_NAME\" variable is not set. Defaulting to a blank string."
……
[+] Building 0.2s (2/2) FINISHED docker:desktop-linux=> [playwright-service internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 306B 0.0s => ERROR [playwright-service internal] load metadata for docker.io/library/node:18-slim 0.1s
------> [playwright-service internal] load metadata for docker.io/library/node:18-slim:
------
failed to solve: node:18-slim: failed to resolve source metadata for docker.io/library/node:18-slim: failed to do request: Head "https://docker.m.daocloud.io/v2/library/node/manifests/18-slim?ns=docker.io": proxyconnect tcp: dial tcp 127.0.0.1:3067: connect: connection refused(.venv) F:\PythonProjects\firecrawl>
failed to solve: node:18-slim: failed to resolve source metadata for docker.io/library/node:18-slim: failed to do request: Head "https://docker.m.daocloud.io/v2/library/node/manifests/18-slim?ns=docker.io": proxyconnect tcp: dial tcp 127.0.0.1:3067: connect: connection refused
當設置好國內鏡像源卻無法拉取鏡像時,重啟 Docker 服務是關鍵的第一步。這是因為只有重啟服務,新設置的鏡像源才能真正生效。重啟完成后,需要耐心等待 Docker 服務完成初始化。初始化所需時間會因系統性能和 Docker 配置的差異而有所不同。待服務初始化完成且狀態穩定后,再嘗試執行拉取鏡像的命令,這樣能顯著提高拉取鏡像的成功率。
此外,若對代理進行了開啟或關閉操作,同樣不能忽視重啟 Docker 服務這一重要環節。與設置鏡像源后的操作類似,在變更代理狀態后,要重啟 Docker 并等待其完成初始化。只有確保系統環境穩定且配置生效,再運行拉取鏡像的命令,才能避免因代理設置變動導致的網絡連接異常,從而成功拉取鏡像。
我在實際操作中,曾遇到過較為棘手的情況。無論是在代理模式還是非代理模式下,鏡像拉取均告失敗,即便此前已設置了國內鏡像源。當嘗試深度訪問https://auth.docker.io/
時,頁面顯示 “404 page not found”。經過深入排查,發現問題根源在于開機時的代理狀態,我之前設置了開機自動開啟代理,同時開機自動啟動 Docker。這就造成了一種特殊狀況:后續無論怎樣操作代理軟件(開啟或關閉代理),Docker 的網絡代理狀態始終停留在代理開啟或關閉前的狀態。也就是說,雖然網絡連接狀態因代理軟件操作發生了改變,但 Docker 的網絡代理狀態卻未同步更新,這就是導致鏡像反復拉取失敗的原因。
為解決這一問題,我采取了以下操作:先手動關閉 Docker 服務,再關閉代理軟件。接著,將代理軟件重新啟動到所需狀態(開啟或關閉代理線路),隨后啟動 Docker 服務。在等待 Docker 服務完成初始化后,再次嘗試拉取鏡像,這次終于成功了。
需要嘗試的組合:
開啟代理+直接拉取
關閉代理+重啟Docker+重啟終端 用鏡像源拉取
開啟或關閉代理后如果未能正常拉取,還需檢查internet屬性 選項中,關于 連接——局域網 設置中的代理變化情況。
也就是需要排查代理軟件的運行狀況是否正常,有沒有出現延遲或卡頓或無法連接網絡的情況。
如果關閉了代理,如下圖所示,復選框都是未勾選狀態。
如果關閉了代理,代理服務器的復選框仍有勾選,那就是代理軟件未正確運行,需要重啟或手動關閉代理進程并變更局域網代理設置。
通過上述操作要點和問題排查過程,大家能夠更高效地解決 Docker 在設置國內鏡像源后出現的鏡像拉取問題,確保 Docker 的正常使用和鏡像管理工作順利進行。
Docker鏡像源設置內容參考:
請參考站內大佬的配置文章
Docker Desktop 國內鏡像源配置解決 “failed to authorize“ 問題_failed to authorize: failed to fetch anonymous tok-CSDN博客
配置內容可直接復制粘貼替換,替換前請先備份之前內容,修改配置有一定風險,請謹慎操作。
?設置完成后關閉代理,重啟Docker服務。