gpt4 book ai didi

azure - 运行由 VS2019 创建的 Azure Docker 容器注册表

转载 作者:行者123 更新时间:2023-12-02 19:23:41 25 4
gpt4 key购买 nike

我很抱歉...说真的,我已经用谷歌搜索到这个了,但我还是迷路了。

使用 Visual Studio 2019,我创建了一个项目(启用了 Docker 支持),为自己构建了一个简单的 Web API,并将其发布到我的 Azure 订阅。我登录到 Azure,可以看到这个新的容器注册表条目。太棒了。

我的问题:我不知道如何在 Azure 中运行它。

最简单的方法当然是创建一个Azure“容器实例”。

这很容易......

enter image description here

我的问题是,当我创建此实例时,我收到以下错误:

The image 'mikesbank20190xxxxxxxxx.azurecr.io' in container 
group 'mikescontainer' is not accessible.
Please check the image and registry credential.

我错过了什么?

假设我的“图像名称”值错误(上面用我的尖手指显示),因为“图像名称”的工具提示显示:

公共(public)或私有(private)镜像的 URI 或 Docker Hub 标记。 ...对于其他镜像,应包含容器注册表(例如:“myacr.azurecr.io/mycontainer:latest”)。

这个我已经试过了。我的图片名为“mikesbank”,标签是“latest”,所以我尝试将其更改为以下内容,但这导致了相同的错误:

mikesbank201909xxxxxxxx.azurecr.io/mikesbank:latest

这是与容器注册表位于同一订阅中的容器。我不确定还需要检查什么。

我也尝试从我的笔记本电脑连接到它。

az account set --subscription 12341234-1234-1234-1234-1234567890
az login
C:\Users\mikeg\source\repos\MikesBank>az acr build --image mikeswebapi/firstattempt:v1 --registry https://mikeswebapi12345678.azurecr.io/mikesbank:latest --file Dockerfile .

...但这只是抛出了一个错误....

The resource with name 'https://mikeswebapi12345678.azurecr.io' and type 'Microsoft.ContainerRegistry/registries' could not be found in subscription 'Pay-As-You-Go (12341234-1234-1234-1234-1234567890)'.

我走了,Google 发现了这个错误,并被告知尝试这个:

az provider register -n Microsoft.ContainerRegistry

...但这完全没有区别。同样的错误,再次出现。

我很抱歉...我确信这是我错过的非常简单和愚蠢的事情,但我已经放弃了谷歌搜索...任何人都可以帮忙吗?

更新

只是为了添加 Alex AIT 的出色答案(如下),因为 StackOverflow 不允许我在回复他的答案时添加图像:

显然,从容器注册表创建容器的最简单方法是单击存储库、存储库名称、标签名称,然后单击“...”按钮。在弹出窗口中,您可以选择“运行实例”。

enter image description here

在撰写本文时,除了隐藏得很好之外,此选项并不是特别聪明。如果您创建了一个 Azure 表示将在“windows/amd64”上运行的容器注册表,它仍然会很高兴地建议您为 Linux 创建一个容器(这将失败)。

更糟糕的是,如果出现问题,Azure 实际上不会向您显示错误原因,它只是告诉您:

enter image description here

要查找原因,您需要单击Azure右上角的图标打开Powershell窗口,然后运行:

az group deployment operation list --resource-group <YourResourceGroup> --name Microsoft.ContainerInstance

现在将向您显示问题的原因。

enter image description here

为什么 Azure 不为我们显示这个?我喜欢 Azure,以及它们为我们提供的所有好东西...但这是它严重需要改进的一个领域。

最佳答案

您需要选择图像类型:私有(private)。这允许您输入更多值,例如用户名和密码。您将通过打开 Visual Studio 创建的容器注册表来获取这些值。原因是您的容器注册表不是公开的(与 Docker Hub 不同)。

Private container registry source

通过在容器注册表中启动来运行镜像更加容易。您可以在那里选择您的镜像并启动一个新的容器实例。

https://learn.microsoft.com/en-us/azure/container-instances/container-instances-using-azure-container-registry#deploy-with-azure-portal

Container Registry

Image Creation

关于azure - 运行由 VS2019 创建的 Azure Docker 容器注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com