Docker 在 2020/08/13 更新了 Docker Terms of Service,也一併更新了 Pricing Page,Docker Hub 即將開始對 docker pull 限制下載量。
Docker Update Rate Limit Policy on 2020-08-24 懶人包
大部分的人都注意到了 Retention Policy 的部分
目前 Docker Hub 上存放了 15 PB 的 Docker Image,其中有 10 PB 是超過六個月完全無人使用的 (push/push) 。 4.5 PB 是由免費帳號 (Free Plan) 創建的 Image,都是只用一陣子的暫存 Image ,像是 CI Pipeline 用的。
在 2020-11-01 當天,超過六個以上沒有 push/pull 的 image,將被排入刪除清單。
- 只有 Free plan 有 image retention
- Pro, Team plan 不會受影響
更可怕的是 Download rate limit
比較令人擔心的反而是這個部分:
- unauthenticated pulls will be rate limited to 100 per 6h
- authenticated pulls will be rate limited to 200 per 6h
而且不是使用 image 當作單位,是 pull layer
!這個限制將會顛覆目前所有現有的 CI/CD pipeline 及 kubernetes 的元件,不僅僅是要使用使用 docker hub login cretential 的問題,CI 中有使用 dockerhub image 的話,也必須支援 login credentials。
目前對策
以個人用的 Docker registry,我會建議轉移到 Gitlab Container Registry
- Public git repo = Public docker registry
- 不需要
docker login registry.gitlab.com
就可以docker pull
公開的 image - 和 git repo 共用 10 GB storage
docker pull registry.gitlab.com/rammus.xu/docker-alpine:nginx-1.19.2 |
docker login registry.gitlab.com -u rammus.xu -p |
企業用的話,如果原本就有使用 Cloud Platform,就繼續用各家的 Registry(GCR, ECR, ACR)。
Kubernetes 則是比較麻煩,大部分的 Controller 都有用到 Docker hub 的 image,如果要買 Docker Hub Plan 的話,則需要自己做 VM Template,裝入 docker hub cretential。
Reference
- https://www.docker.com/pricing
- https://docs.docker.com/docker-hub/download-rate-limit/
- https://www.docker.com/pricing/retentionfaq