如何基于Azure Container Registry私有镜像编写Dockerfile构建新镜像
基于私有Azure Container Registry(ACR)镜像构建新镜像的配置步骤
你只需要完成以下两步配置即可正常拉取私有ACR的镜像作为构建基础:
1. 提前完成ACR登录认证
docker构建过程中拉取私有镜像需要依赖当前环境的容器 registry 登录凭证,你可以任选以下一种方式完成登录:
- 本地调试构建时,优先用Azure CLI执行命令:
az acr login --name <你的ACR资源名称>,命令执行成功后本地docker会自动获取临时登录凭证 - 无Azure CLI的环境可以用docker原生登录命令:
docker login <ACR登录服务器地址> -u <用户名> -p <访问密码/令牌>,ACR的登录地址、用户名、密码均可在Azure门户对应ACR资源的「访问密钥」页查询
2. 规范Dockerfile中FROM语句的写法
直接在FROM后填写私有镜像的完整ACR路径即可,格式如下:FROM <ACR登录服务器地址>/<你的R环境镜像名>:<镜像标签>
举个实际例子:如果你的ACR登录地址是myrrepo.azurecr.io,之前推送的R环境镜像名为r-base,标签是4.3.2,那写法就是:FROM myrrepo.azurecr.io/r-base:4.3.2
特殊场景补充说明
如果是在CI/CD流水线中执行构建,建议不要硬编码ACR密码,可通过服务主体、托管身份等方式为流水线授予ACR的AcrPull权限,避免凭证泄露。
常见报错排查:如果构建时提示
pull access denied,先检查两点:一是当前构建环境是否已经完成ACR登录,权限是否正确;二是Dockerfile中写的镜像路径、标签是否和ACR中存储的镜像信息完全一致。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

