我正在查看有关在容器的Azure Web App中部署Windows容器(处于预览状态)的文档here。
另外,该文档似乎落后了(因为它发展很快,并且正在预览中)。例如。在Windows容器部署的steps 5中,说明并不讨论启动文件,如下所示。没有文件,即使这是强制性的还是可以保留为空?
尝试部署时,我在底部的面板上看到错误 来自托管在Docker Hub的公共仓库中的映像的容器。
如何解决我遇到的错误?
错误消息是:无法在以下操作系统中运行此操作系统/版本 Windows容器。支持的最高操作系统版本是10.0.14393.9999。
这是我从VS 2017通过添加“容器编排支持”而添加的docker.yml。
FROM microsoft/aspnet:4.7.2-windowsservercore-1803
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
这是docker-compose.yml
version: '3.4'
services:
webformapp:
image: ${DOCKER_REGISTRY-}webformapp
build:
context: .\WebFormApp
dockerfile: Dockerfile
答案 0 :(得分:1)
当前,我们仅支持Windows Server 2016 RS1映像,但我们正在推出一个更新,在该更新中,我们将能够运行从RS1到RS5的所有Windows容器基础映像。我没有确切的日期,但是我们应该在三月底之前完成。
现在,请将您的基本图片更改为: microsoft / aspnet:4.7.2-windowsservercore-ltsc2016
完成更新后,请尝试: microsoft / aspnet:4.7.2-windowsservercore-ltsc2019
ltsc2019较小,因此您会注意到Web应用程序的启动速度更快
有关更多信息: https://hub.docker.com/_/microsoft-dotnet-framework-aspnet
谢谢
华金
答案 1 :(得分:0)
您正在使用1803作为容器的基本OS版本,但是错误提到10.0.14393.9999
,它对应于1607(https://en.wikipedia.org/wiki/Windows_10_version_history)。因此,您需要使用另一个基本映像。尝试以下基础:4.7.2-windowsservercore-ltsc2016
答案 2 :(得分:0)
免责声明:答案并非特定于Azure Web App,因此请谨慎对待。
但是,关于托管Windows容器的问题,我遇到了很多麻烦。它看起来非常类似于我以前遇到的一个问题-基本上,Docker和Windows之间的虚拟化层非常薄,因此主机和容器之间的Windows版本需要对齐。
您要么需要将Container版本与Windows版本进行匹配(即从其他基础映像进行构建),要么在docker run中使用hyper-v虚拟化模式来解决差异。不确定在Azure Web Apps中是否还可以进行第二次。
有关更多详细信息,请参见此处: