如何通过Azure容器实例运行Azure容器注册表中的Docker镜像?
使用Azure容器实例运行自定义Docker镜像(含登录问题解决)
一、解决Azure登录环节问题
- 先确认已安装Azure CLI,终端执行以下命令完成账号登录:
az login
会自动弹出浏览器窗口,选择你的Azure账号完成验证;无浏览器环境用设备码登录:az login --use-device-code
按提示在浏览器输入设备码即可完成验证。 - 登录后检查当前是否为目标订阅:
az account show
若需切换订阅,执行:az account set --subscription <订阅ID/名称>
二、将本地镜像推送到Azure容器注册表(ACR)
Azure容器实例需要从可访问的镜像仓库拉取镜像,自定义镜像推荐存到ACR:
- 未创建ACR的话先创建:
az acr create --resource-group <你的资源组名> --name <ACR名称> --sku Basic - 登录到ACR(确保Docker daemon处于运行状态):
az acr login --name <ACR名称> - 给本地镜像打ACR格式标签:
docker tag <本地镜像名>:<标签> <ACR名称>.azurecr.io/<镜像名>:<标签> - 推送镜像到ACR:
docker push <ACR名称>.azurecr.io/<镜像名>:<标签>
三、用Azure容器实例运行镜像
- 从ACR拉取镜像创建ACI实例:
az container create --resource-group <资源组名> --name <ACI实例名> --image <ACR名称>.azurecr.io/<镜像名>:<标签> --registry-login-server <ACR名称>.azurecr.io --registry-username <ACR用户名> --registry-password <ACR密码>
其中ACR的用户名和密码可通过以下命令获取:az acr credential show --name <ACR名称> - 若需暴露端口(如Web服务),添加端口和公网IP参数:
az container create --resource-group <资源组名> --name <ACI实例名> --image <ACR名称>.azurecr.io/<镜像名>:<标签> --registry-login-server <ACR名称>.azurecr.io --registry-username <ACR用户名> --registry-password <ACR密码> --ports 80 --ip-address Public - 查看ACI实例运行状态:
az container show --resource-group <资源组名> --name <ACI实例名> --query "{状态:instanceView.state, 公网IP:ipAddress.ip}" --output table
常见登录异常排查
az acr login报错"Cannot connect to the Docker daemon":启动本地Docker服务,确保Docker处于运行状态。- 登录后无ACR操作权限:在Azure门户给当前账号添加ACR的
AcrPush或Contributor角色权限。 - 推送镜像时权限不足:直接用ACR账号密码登录Docker后再推送:
docker login <ACR名称>.azurecr.io
输入ACR用户名和密码即可。
内容的提问来源于stack exchange,提问作者Jose Ignacio Lavecchia
相关产品推荐
相关产品推荐

