首页 > 解决方案 > 为什么 .NET Framework 示例映像在 Azure 容器注册表中的 Azure 容器实例中运行时会引发错误?

问题描述

我想在 Azure 容器实例上运行 .NET Framework (4.8) 控制台应用程序。

https://github.com/microsoft/dotnet-framework-docker/tree/master/samples/dotnetapp开始

如果我直接创建 ACI:

az container create --resource-group mygroup --name nethowdy --image mcr.microsoft.com/dotnet/framework/samples:dotnetapp --restart-policy Never --os-type Windows

...它按预期运行 - 即,它成功完成,并且输出正确:

az container logs --resource-group mygroup --name nethowdy

到目前为止,一切都很好。

然后我克隆了https://github.com/microsoft/dotnet-framework-docker并进入了 samples/dotnetapp 文件夹。在本地构建/运行 docker 工作正常。

但是,当我尝试将该示例图像构建到 ACR 中时,我无法让它工作。具体来说,我这样做:

az acr build --registry myreg --image nethowdy --file Dockerfile.basic --platform windows .

该构建过程成功,一切看起来都很好。但是当我尝试从中创建容器时,它失败了:

az container create --resource-group mygroup --name nethowdy --image myreg.azurecr.io/nethowdy --restart-policy Never --os-type Windows

具体来说,我收到此错误:

BadRequestError:不支持的 Windows 图像版本。支持的版本是“Windows Server 2016 - 2B 之前、Windows Server 2019 - 2B 之前、Windows Server 2016 - 2B 之后、Windows Server 2019 - 2B 之后”

谁能告诉我我做错了什么?这是基本的 .NET Framework 映像,因此它应该能够在 ACI 上运行 - 当我从 Microsoft 的映像而不是我的映像创建容器时,它显然可以运行。这是 ACI/ACR 或类似的身份验证问题吗?我会很感激任何线索。

编辑:我已经越过了障碍,所以我没有被困住 - 但我仍在弄清楚“问题”的细节......我很快就会发布我自己的答案以帮助下一个人

标签: .netdockerazure-container-instancesacr

解决方案


该错误已经向您显示了原因:不支持的 Windows 映像版本。ACI 不支持所有的 windows 映像,您可以在此处获取有关 ACI 中支持的 windows 映像的详细信息。


推荐阅读