對於所有關於Docker的聊天,以及它如何適應虛擬化世界,我都有點困惑。所以這裏有一個直接的問題:我能打包一個.Net應用程序(通常運行在Windows 7等)在Docker容器中運行,然後在任何支持Docker的主機上執行它?我可以在Docker上使用Windows .Net應用程序嗎?
TIA。
對於所有關於Docker的聊天,以及它如何適應虛擬化世界,我都有點困惑。所以這裏有一個直接的問題:我能打包一個.Net應用程序(通常運行在Windows 7等)在Docker容器中運行,然後在任何支持Docker的主機上執行它?我可以在Docker上使用Windows .Net應用程序嗎?
TIA。
不是今天。在未來,微軟和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代碼。
這就回答了這個問題。我儘可能多地思考,但對我來說不是很清楚(就是說,我讀的所有內容都沒有被排除在外,也沒有排除)。所以在炒作後面,這不是我希望的銀彈。 :-( – 2014-11-26 09:47:29
它通常證明在軟件產品中沒有真正的魔力:-) – Bryan 2014-11-26 09:59:59
Docker構建於Linux上。在Docker中運行.Net應用程序的唯一方法是使用Mono for Linux。
可能值得指出的是,Hub上有一個官方微軟存儲庫,帶有一個運行在Mono上的asp.net圖像:https://registry.hub.docker.com/repos/microsoft/ – 2014-11-25 15:02:06
是的,如果你裝酒和.NET,這裏就是這樣一個Dockerfile
https://registry.hub.docker.com/u/justmoon/wix/dockerfile/
提取
# Install .NET Framework 4.0
RUN酒wineboot & & xvfb的運行winetricks的例子 - 無人看管的dotnet40 corefonts
另一個例子,如果你想測試你的PowerShell技能,使用下面的Dockerfile https://registry.hub.docker.com/u/solarkennedy /的powershell/dockerfile / – user2915097 2014-12-01 14:10:52
這可能是非常過時的問題,但我認爲它需要更新。是的,你可以使用帶有.NET/.NET的核心碼頭工人,並會在Visual Studio 2017年
https://channel9.msdn.com/Events/Connect/2016/172
完全支持是沒有必要使用WINE或單聲道。
下面是例如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
晚了一點,但還是如果它可以幫助任何人。 是的,我們可以在Docker上運行.Net應用程序,因爲docker現在可以在本機上支持Windows。但首先你必須檢查你的Windows版本,你的Windows版本必須是14393.233或更高。下載Docker 1.13.0或更高版本,然後您可以輕鬆運行.Net應用程序。 This repository 通過運行示例.Net應用程序。
如果您的意思是.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