2014-11-25 164 views
28

对于所有关于Docker的聊天,以及它如何适应虚拟化世界,我都有点困惑。所以这里有一个直接的问题:我能打包一个.Net应用程序(通常运行在Windows 7等)在Docker容器中运行,然后在任何支持Docker的主机上执行它?我可以在Docker上使用Windows .Net应用程序吗?

TIA。

+0

如果您的意思是.NET应用程序使用普通的.NET 4.6(或更低版本)Web应用程序,那么您可以打包并将其与Mono运行在Docker容器中。例如,[NancyFx](http://nancyfx.org/)框架是从第1天开始构建的,其构思是跨平台的,您可以(和人们)在Docker容器中运行.NET Web应用程序。请参阅[在Docker容器中运行NancyFx,在Docker中构建和运行.NET应用程序的初学者指南](http://dusted.codes/running-nancyfx-in-a-docker-container-a-beginners-guide-to -build-and-run-dotnet-applications-in-docker)以获取更多信息。 – dustinmoris 2016-02-04 10:47:21

回答

13

不是今天。在未来,微软和Docker有announced,你会有一个Windows版本的Docker。

编辑:newer info

注意,基础平台和操作系统必须匹配 - 即今天你可以运行在x64的Linux ARM的Linux和x64的Linux容器ARM Linux的容器,但你不能混搭。添加Windows时,模式将相同 - 您将能够在Windows操作系统上运行Windows容器,但不能在Linux上运行。不是没有额外的虚拟化层(如VirtualBox,VMWare等)。

编辑:尊重Wine答案,我没有考虑过。它适合作为“额外的虚拟化层”,但在OS API级别而不是硬件级别。支持.Net程序的范围有所限制。

以类似的方式,您可以使用Mono在Docker中运行.Net代码。

+1

这就回答了这个问题。我尽可能多地思考,但对我来说不是很清楚(就是说,我读的所有内容都没有被排除在外,也没有排除)。所以在炒作后面,这不是我希望的银弹。 :-( – 2014-11-26 09:47:29

+1

它通常证明在软件产品中没有真正的魔力:-) – Bryan 2014-11-26 09:59:59

4

Docker构建于Linux上。在Docker中运行.Net应用程序的唯一方法是使用Mono for Linux。

+2

可能值得指出的是,Hub上有一个官方微软存储库,带有一个运行在Mono上的asp.net图像:https://registry.hub.docker.com/repos/microsoft/ – 2014-11-25 15:02:06

4

是的,如果你装酒和.NET,这里就是这样一个Dockerfile

https://registry.hub.docker.com/u/justmoon/wix/dockerfile/

提取

# Install .NET Framework 4.0 

RUN酒wineboot & & xvfb的运行winetricks的例子 - 无人看管的dotnet40 corefonts

+0

另一个例子,如果你想测试你的PowerShell技能,使用下面的Dockerfile https://registry.hub.docker.com/u/solarkennedy /的powershell/dockerfile / – user2915097 2014-12-01 14:10:52

2

这可能是非常过时的问题,但我认为它需要更新。是的,你可以使用带有.NET/.NET的核心码头工人,并会在Visual Studio 2017年

https://channel9.msdn.com/Events/Connect/2016/172

完全支持是没有必要使用WINE或单声道。

下面
0

是例如dockerfile运行.NET 4.5的应用程序

FROM microsoft/iis 

RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"] 
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"] 

ADD publisedDir/ c:\\website 

EXPOSE 8081 

RUN powershell New-Website -Name 'websiteName' -Port 8081 -PhysicalPath 'c:\website' -ApplicationPool '.NET v4.5' 

ENTRYPOINT powershell 
1

晚了一点,但还是如果它可以帮助任何人。 是的,我们可以在Docker上运行.Net应用程序,因为docker现在可以在本机上支持Windows。但首先你必须检查你的Windows版本,你的Windows版本必须是14393.233或更高。下载Docker 1.13.0或更高版本,然后您可以轻松运行.Net应用程序。 This repository 通过运行示例.Net应用程序。

相关问题