使用 Azure Container Registry 缓存 Docker Hub 镜像
这篇文章介绍如何使用 ACR (Azure Container Registry) 缓存 Docker Hub 和 GitHub Container Registry 的镜像。
详细步骤
- 登录 Azure portal
- Create a resource
- 搜索 Container Registry 并创建
- 大陆地区建议选择 East Asia (Hong Kong),Southeast Asia (Singapore) 或者 Japan East,其他随意
- 打开创建好的 Container Registry
- 展开左边的 Services,点 Cache
- Create rule 配置规则
- Rule name: dockerio
- Source: Docker Hub
- Repository path:
docker.io/*
- New ACR repository namespace:
dockerio/*
- 按需配置其他源,例如
ghcr.io/*
->ghcrio/*
- 如果你就在 Azure 的环境内用,或者可以用 Azure CLI 登录,例如
az acr login
,就不用搞下面的 Token 了,直接去 Access Control (IAM) 配一下权限 (AcrPull) 就行了 - 展开左边的 Repository permissions,点 Token
- Add,Token (name) 写一个你能区分出来的名字,Scope 选
_repositories_pull
- password1 右边的 Actions 点一下就能生成一个 Token 出来用,同时还给你一条命令用于 Docker client 登录 ACR 用,一定要记住这个密码,关了之后就看不到了
镜像替换
全都弄完了并且让你的 Docker client 登录之后,按照你配置的规则进行镜像替换,比如按照我上面的规则
library/redis:6.2
->xxxxx.azurecr.io/dockerio/library/redis:6.2
tensorchord/pgvecto-rs:pg14-v0.2.0
->xxxxx.azurecr.io/dockerio/tensorchord/pgvecto-rs:pg14-v0.2.0