windows/amd64 Server 2016 没有匹配的清单
no matching manifest for windows/amd64 Server 2016
创建了一个简单的 .net 核心应用程序。尝试 运行 docker build
但我得到:
"no matching manifest for windows/amd64 10.0.14393 in the manifest
list entries"
Docker 文件:
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "HelloWorld.dll"]
拍摄 2:
尝试了 vs2019,创建了新的 MVC 应用程序 => 添加 docker 支持 (windows) Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1809 AS build
WORKDIR /src
COPY ["coremvc.csproj", ""]
RUN dotnet restore "./coremvc.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "coremvc.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "coremvc.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "coremvc.dll"]
现在得到:
a Windows version 10.0.17763-based image is incompatible with a
10.0.14393 host
Docker 安装在服务器上:
Name Version
---- ------- Docker 19.03.2
为什么我不能在 Windows Server 2016 上 运行 这些?。它在 Windows 10 本地
上运行良好
对于 Windows 个图像,Docker 主机的 Windows 版本在确定您应该使用哪个图像标签时很重要。
对于第一个错误:no matching manifest for windows/amd64 10.0.14393 in the manifest list entries
,当使用多架构标签时会发生此错误,而没有具体标签与您的 [=] 的 OS version/architecture 相匹配32=] 主机。我不确定到底是哪个标签导致了错误,但我猜是 microsoft/dotnet:aspnetcore-runtime
。这是一个多架构标签,Docker 将查看您的主机信息以将该标签解析为 OS version/architecture 特定的具体标签。在这种情况下,您的主机版本 10.0.14393 没有可用的标签。
对于第二个错误:a Windows version 10.0.17763-based image is incompatible with a 10.0.14393 host
,在这种情况下,您使用的是 Windows 特定于版本的标记,因此此处无需解析;您明确说明了您想要的图像的 Windows 版本。问题是您尝试使用的 Windows 版本高于 Docker 主机使用的版本。那是做不到的;您只能使用相同或更低的版本(并且您只能根据特定条件使用更低的版本:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility)。
Windows Server 2016 没有任何受支持的 .NET Core 映像。请在此处查看当前标签列表:https://hub.docker.com/_/microsoft-dotnet-core-sdk。如果您能够使用 Windows 服务器版本 1803 或更高版本,那应该没问题。
创建了一个简单的 .net 核心应用程序。尝试 运行 docker build
但我得到:
"no matching manifest for windows/amd64 10.0.14393 in the manifest list entries"
Docker 文件:
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "HelloWorld.dll"]
拍摄 2: 尝试了 vs2019,创建了新的 MVC 应用程序 => 添加 docker 支持 (windows) Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1809 AS build
WORKDIR /src
COPY ["coremvc.csproj", ""]
RUN dotnet restore "./coremvc.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "coremvc.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "coremvc.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "coremvc.dll"]
现在得到:
a Windows version 10.0.17763-based image is incompatible with a 10.0.14393 host
Docker 安装在服务器上:
Name Version ---- ------- Docker 19.03.2
为什么我不能在 Windows Server 2016 上 运行 这些?。它在 Windows 10 本地
上运行良好对于 Windows 个图像,Docker 主机的 Windows 版本在确定您应该使用哪个图像标签时很重要。
对于第一个错误:no matching manifest for windows/amd64 10.0.14393 in the manifest list entries
,当使用多架构标签时会发生此错误,而没有具体标签与您的 [=] 的 OS version/architecture 相匹配32=] 主机。我不确定到底是哪个标签导致了错误,但我猜是 microsoft/dotnet:aspnetcore-runtime
。这是一个多架构标签,Docker 将查看您的主机信息以将该标签解析为 OS version/architecture 特定的具体标签。在这种情况下,您的主机版本 10.0.14393 没有可用的标签。
对于第二个错误:a Windows version 10.0.17763-based image is incompatible with a 10.0.14393 host
,在这种情况下,您使用的是 Windows 特定于版本的标记,因此此处无需解析;您明确说明了您想要的图像的 Windows 版本。问题是您尝试使用的 Windows 版本高于 Docker 主机使用的版本。那是做不到的;您只能使用相同或更低的版本(并且您只能根据特定条件使用更低的版本:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility)。
Windows Server 2016 没有任何受支持的 .NET Core 映像。请在此处查看当前标签列表:https://hub.docker.com/_/microsoft-dotnet-core-sdk。如果您能够使用 Windows 服务器版本 1803 或更高版本,那应该没问题。