【问题标题】:Running .NET exe inside a Docker container on Windows 10在 Windows 10 上的 Docker 容器中运行 .NET exe
【发布时间】:2021-09-23 15:08:39
【问题描述】:

我有以下问题。我正在使用 Windows 10 版本 21H1。首先我安装了 Docker 桌面,但是当我运行它(作为 Windows 容器)时,我遇到了 hyper-v 问题。 所以最后我按照这里的步骤操作:https://poweruser.blog/docker-on-windows-10-without-hyper-v-a529897ed1cc

这至少帮助我拥有了一个正在运行的 docker 守护进程。

现在我正在尝试创建一个 Docker 容器,我可以在其中运行 .NET (.exe) 应用程序,但我似乎无法管理它。首先,我试图找到一个与我的本地 Windows 对应的 Docker 映像,基于此: https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-20H2%2Cwindows-10-21H1

但是,有

FROM mcr.microsoft.com/windows/nanoserver:win10-21h1-preview

在我的 Dockerfile 中,当我运行 Docker 映像/容器时出现错误:

docker:来自守护进程的错误响应:hcs::CreateComputeSystem bb65c4f05b41cb637f2e6cda7a6201aa5af8f51659b299957be0e45eb3e5dab9:容器操作系统与主机操作系统不匹配。

唯一有效的是:

FROM mcr.microsoft.com/windows/nanoserver:2004

但是对于这张图片,我似乎没有任何工具来运行 .NET 应用程序;我什至没有powershell。

简而言之,在 Windows 10 的 Docker 容器中运行 .NET exe 的方法是什么?

谢谢,

您好,

Sorin

【问题讨论】:

    标签: .net windows docker


    【解决方案1】:

    您应该使用适用于 Windows 的 official .NET Docker images,因为您特别想运行 .NET 应用程序。例如,您可以使用以下标记运行 .NET 5 SDK:mcr.microsoft.com/dotnet/sdk:5.0。还有 sample .NET Docker images 演示了一个预制的 .NET 应用程序:mcr.microsoft.com/dotnet/samples:dotnetapp

    这些都是多架构/多平台标签,这意味着将根据您的主机版本拉取适当版本的 Windows 映像。因此,无需担心为您的 Windows 版本使用特定标签。但是,在必要的情况下,也有特定于 Windows 版本的标签可用(例如5.0-nanoserver-20H2)。

    【讨论】:

    • 谢谢马特,但是当我尝试运行生成的 docker 容器时,使用 mcr.microsoft.com/dotnet/samples:dotnetapp 以及 mcr.microsoft.com/dotnet/sdk:5.0从这些图像中,我收到此错误:docker:来自守护进程的错误响应:hcs::CreateComputeSystem c0fa747600588d1be9a603577e70db03d9bafd00883bdb294ece6b2bf9bf4eb4:容器操作系统与主机操作系统不匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2023-01-16
    • 2017-09-16
    • 1970-01-01
    • 2020-12-27
    • 2020-12-07
    • 2017-02-01
    相关资源
    最近更新 更多