【问题标题】:ASPNETCORE containers loading on linux server, but "image operating system "windows" cannot be used on this platform"ASPNETCORE 容器在 linux 服务器上加载,但“镜像操作系统“windows”不能在此平台上使用”
【发布时间】:2019-04-05 10:45:37
【问题描述】:

又是一天,又是一个 docker 问题。 我目前正在开发一个容器中的 aspnetcore 应用程序,我想在 Ubuntu 18.04 上运行它。 这是我的 Dockerfile:

FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0 AS build
RUN dotnet restore FOLDER
RUN dotnet build FOLDER
FROM build AS publish
RUN dotnet publish
(I didn't put names or some steps as copy)

在我的部署 CI 中,它返回 无法在此平台上使用映像操作系统“windows”。我已经直接在服务器上拉了这两张图片,它们拉得很好。

我最初使用 --isolation=hyperv 构建。

我对 linux 容器和服务器还很陌生,因此我不确定问题出在哪里......

感谢您的帮助!

【问题讨论】:

    标签: linux docker asp.net-core linux-containers


    【解决方案1】:

    基本上,您不能在 Linux 中运行 windows 容器。

    取自Can Windows Containers be hosted on linux?

    容器不用于虚拟化,它们正在使用主机的资源。结果,目前 Windows 容器无法在 linux 机器上“按原样”运行。 但是 - 您可以使用 VM 来完成 - 因为它适用于 Windows。您可以在您的 linux 主机上安装 windows VM,这将允许运行 windows 容器。

    【讨论】:

    • 哦。那是一个快速的答案!谢谢你。我会很无知:我的 linux 是一个 AWS 实例。所以我不确定我是否可以在 Linux 服务器上运行 Windows VM....?
    • 是的,你应该能够在 Linux 上运行 Windows VM,例如使用 VirtualBox itsfoss.com/install-windows-10-virtualbox-linux 如果你没有绑定到那个 Linux AWS 实例,你可以只部署一个 Windows AWS 实例来代替你可以在那里直接运行windows docker容器。
    • 谢谢你,你是我需要的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2021-12-26
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多