无法从DockerHub在Azure Web App上为容器部署Windows容器

时间:2019-02-27 15:51:50

标签: containers azure-web-sites azure-web-app-service

我正在查看有关在容器的Azure Web App中部署Windows容器(处于预览状态)的文档here

另外,该文档似乎落后了(因为它发展很快,并且正在预览中)。例如。在Windows容器部署的steps 5中,说明并不讨论启动文件,如下所示。没有文件,即使这是强制性的还是可以保留为空?

enter image description here

  

尝试部署时,我在底部的面板上看到错误   来自托管在Docker Hub的公共仓库中的映像的容器。

enter image description here

如何解决我遇到的错误?

  

错误消息是:无法在以下操作系统中运行此操作系统/版本   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

3 个答案:

答案 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中是否还可以进行第二次。

有关更多详细信息,请参见此处:

Microsoft Documentation