Docker Hub 使用量和速率限制
重要
Docker 正在推出增強的訂閱方案。我們的新方案包含更多功能、更高的使用量限制和簡化的定價。新的訂閱方案將於 2024 年 12 月 10 日或之後的下一個續約日期生效。在 2025 年 2 月 28 日之前,Docker Hub 映像檔提取或儲存不會產生任何費用。請參閱Docker 方案升級公告
重要
Docker 正在推出增強的訂閱方案。我們的新方案包含更多功能、更高的使用量限制和簡化的定價。新的訂閱方案將於 2024 年 12 月 10 日或之後的下一個續約日期生效。在 2025 年 2 月 28 日之前,Docker Hub 映像檔提取或儲存不會產生任何費用。請參閱Docker 方案升級公告
使用以下步驟來幫助優化和管理個人和組織的 Docker Hub 使用情況。
使用 Docker Hub 使用資料來識別哪些帳戶消耗的資料最多,確定尖峰使用時間,並識別哪些映像檔與最多的資料使用量相關。此外,尋找使用趨勢,例如以下:
透過執行以下操作來優化映像檔提取:
透過定期稽核和移除未標記、未使用或過時的映像檔來優化儲存庫的大小。
透過升級或購買附加元件來提高您的限制。詳情請參閱Docker 價格
提取可以歸因於個人或組織命名空間 私有儲存庫的提取將歸因於儲存庫的命名空間所有者。 從公開儲存庫提取映像檔時,歸因將根據網域隸屬關係和組織成員資格來確定。 從連結到已驗證網域的帳戶提取映像檔時,歸因將設定為該網域 如果使用者是公司旗下多個組織的成員,則提取將歸因於使用者的個人命名空間。 提取使用情況會套用速率限制。使用者的速率限制等於其個人帳戶或其所屬任何組織的最高權限。要利用此優勢,您必須以已驗證使用者的身分登入Docker Hub Docker 正在推出增強的訂閱方案。我們的新方案包含更多功能、更高的使用量限制和簡化的定價。新的訂閱方案將於 2024 年 12 月 10 日或之後的下一個續約日期生效。在 2025 年 2 月 28 日之前,Docker Hub 映像檔提取或儲存不會產生任何費用。請參閱Docker 方案升級公告 2025 年 3 月 3 日之後,透過 Docker 增強的訂閱方案,具有付費訂閱的使用者或自動化系統將沒有映像檔提取速率限制。 使用 Docker Hub 的匿名使用者和 Docker 個人使用者將會遇到映像檔提取請求的速率限制。對於已驗證的使用者,每位使用者每小時將有 40 次提取的速率限制;對於未經驗證的使用,每個 IP 地址每小時將有 10 次提取的速率限制。 Docker Hub 根據提取映像檔的使用者帳戶類型來限制 Docker 映像檔下載或提取的次數。提取速率限制基於個別 IP 地址。下表反映了 Docker 目前的速率限制: 如果您需要更多提取次數,您也可以購買增強型服務帳戶附加元件。 當您發出提取請求且超過限制時,Docker Hub 會在請求 manifest 時傳回 `429` 回應程式碼,並包含以下主體: 此錯誤訊息會顯示在 Docker CLI 或 Docker Engine 的記錄中。 對 Hub 的有效 API 請求通常會在回應中包含以下速率限制標頭 這些標頭會在 GET 和 HEAD 請求中傳回。 使用 GET 模擬實際的提取並計入限制。使用 HEAD 則不會。要檢查您的限制,您需要安裝 如果您以匿名方式提取,請以匿名方式取得權杖 如果您已通過驗證,請使用使用者帳戶取得權杖(請在以下指令中插入您的使用者名稱和密碼) 然後,若要取得顯示您限制的標頭,請執行以下指令 應該會傳回以下標頭 在前面的範例中,提取限制為每 21600 秒(6 小時)100 次提取,且剩餘 76 次提取。 如果您沒有看到任何 RateLimit 標頭,可能是因為映像或您的 IP 與發佈者、提供者或開放原始碼組織合作而沒有限制。也可能表示您提取所使用的使用者是付費 Docker 方案的一部分。如果您沒有看到這些標頭,則提取該映像將不會計入提取限制。但是,每日提取次數超過 5000 次的付費 Docker 訂閱使用者需要服務帳戶訂閱。 若要利用付費 Docker 訂閱中包含的較高限制,您必須使用您的使用者帳戶驗證提取。 專業版、團隊版或商業版方案並不會提高其他使用者對您映像的限制。請參閱 Docker 的開放原始碼 Docker Hub 也有整體速率限制,以保護應用程式和基礎架構。此限制適用於所有對 Hub 屬性的請求,包括網頁、API 和映像提取。限制是依每個 IP اعمال،且限制會隨著時間推移而變化,具體取決於負載和其他因素,但大約是每分鐘數千個請求。整體速率限制平等地適用於所有使用者,不論帳戶級別為何。 您可以透過查看錯誤碼來區分這些限制。「整體限制」會傳回簡單的 以下章節包含有關如何登入 Docker Hub 以驗證提取請求的資訊。 如果您使用的是 Docker Desktop,您可以從 Docker Desktop 選單登入 Docker Hub。 從 Docker Desktop 選單中選取**登入 / 建立 Docker ID**,然後按照螢幕上的指示完成登入流程。 如果您使用的是 Docker Engine 的獨立版本,請從終端機執行 如果您正在執行 Docker Swarm,則必須使用 如果您使用 GitHub Actions 來建置 Docker 映像並將其推送至 Docker Hub,請參閱登入動作 如果您正在執行 Kubernetes,請按照從私有倉庫提取映像 如果您使用任何協力廠商平台,請按照您的提供者有關使用倉庫驗證的指示進行操作。公開提取
已驗證的網域所有權
速率限制
使用者類型 速率限制 匿名使用者 每個 IP 地址每 6 小時 100 次提取 已驗證使用者 每 6 小時 200 次提取 具有付費Docker 訂閱 如何知道我的提取請求受到限制?
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://docker.dev.org.tw/increase-rate-limits
如何檢查我目前的速率?
ratelimit-limit
ratelimit-remaining
docker-ratelimit-source
curl
、grep
和 jq
。$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
ratelimit-limit: 100;w=21600
ratelimit-remaining: 76;w=21600
docker-ratelimit-source: 192.0.2.1
我沒有看到任何 RateLimit 標頭
即使我已付費訂閱 Docker,我的速率仍被限制在較低水準
其他限制
429 Too Many Requests
回應。提取限制會傳回包含此頁面連結的較長錯誤訊息。如何驗證提取請求?
Docker Desktop
Docker 引擎
docker login
指令以向 Docker Hub 進行驗證。有關如何使用此指令的資訊,請參閱docker login。Docker Swarm
--with-registry-auth
旗標向 Docker Hub 進行驗證。如需詳細資訊,請參閱建立服務。如果您使用 Docker Compose 檔案來部署應用程式堆疊,請參閱docker stack deploy。GitHub Actions
Kubernetes
第三方平台