[英]Can't pull image from private Azure Container Registry when using Az CLI to create a new Azure Container Instance
我已經創建了一個服務主體,具有對我的私有 Azure 容器注冊表的推送和拉取訪問權限。 使用以下命令推送到 ACR 工作得很好:
az login --service-principal -u "someSpID" -p "someSpSecret" --tenant "someTenantID"
az acr login --name "someRegistry"
docker push "someRegistry.azurecr.io/my-image:0.0.1"
我還可以使用以下命令直接拉取圖像:
docker pull "someRegistry.azurecr.io/my-image:0.0.1"
我想將容器實例部署到私有子網中,並且我已經配置了網絡安全性以允許訪問我的所述子網。
但是,當我嘗試使用以下命令將容器實例部署到我的私有子網中時,我在其中指定了我之前登錄時使用的相同服務主體,我收到了錯誤響應。
az container create \
--name myContainerGroup \
--resource-group myResourceGroup \
--image "someRegistry.azurecr.io/my-image:0.0.1" \
--os-type Linux \
--protocol TCP \
--registry-login-server someRegistry.azurecr.io \
--registry-password someSpSecret \
--registry-username someSpID \
--vnet someVNET \
--subnet someSubnet \
--location someLocation \
--ip-address Private
錯誤:
urllib3.connectionpool : Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool : https://management.azure.com:443 "PUT /subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup?api-version=2018-10-01 HTTP/1.1" 400
msrest.http_logger : Response status: 400
The image 'someRegistry.azurecr.io/my-image:0.0.1' in container group 'myContainerGroup' is not accessible. Please check the image and registry credential.
當我嘗試通過 Azure 門戶部署容器實例時,會發生同樣的錯誤。
當我嘗試將公共映像部署到同一個子網時,它成功了,所以它不是部署權限問題,它似乎也不是錯誤的服務主體憑據,因為docker pull "someRegistry.azurecr.io/my-image:0.0.1"
工作得很好。 我無法完全理解這種不一致的行為。 任何人的想法?
對於您的問題,這里有一個可能的原因來解釋您遇到的錯誤。 讓我們看看這里描述的限制:
只有 Azure Kubernetes 服務集群或 Azure 虛擬機可以作為主機訪問虛擬網絡中的容器注冊表。 目前不支持包括 Azure 容器實例在內的其他 Azure 服務。
此限制表明 Azure 容器注冊表的防火牆當前不支持 Azure 容器實例。 它僅支持在 Azure VM 或 AKS 群集中拉/推映像。
因此,您的解決方案是更改規則以允許所有網絡,然后重試。 或者使用 AKS 集群,但也會花費更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.