2014-11-25 8 views
28

Ich bin etwas verwirrt über den ganzen Chat über Docker und wie es in die Virtualisierungswelt passt. Hier also eine einfache Frage: Kann ich eine .Net-Anwendung (die normalerweise unter Windows 7 läuft) in einen Docker-Container einbinden und dann auf einem "beliebigen" Host ausführen, der Docker unterstützt?Kann ich eine Windows .Net App mit Docker verwenden?

TIA.

+0

Wenn Sie von .NET app eine normale .NET 4.6 (oder niedriger) Webanwendung meinen, dann JA, können Sie es verpacken und es mit Mono in einem Docker-Container ausführen. Zum Beispiel wurde das [NancyFx] (http://nancyfx.org/) Framework vom ersten Tag an mit der Idee erstellt, plattformübergreifend zu sein, und Sie können (und tun) eine .NET Webanwendung in Docker Containern ausführen.Siehe [Ausführen von NancyFx in einem Docker-Container, eine Anleitung für Anfänger zum Erstellen und Ausführen von .NET-Anwendungen in Docker] (http://dusted.codes/running-nancyfx-in-a-docker-container-a-beginners-guide-to) -build-and-run-dotnet-Anwendungen-in-docker) für weitere Informationen. – dustinmoris

Antwort

13

Nicht heute. In Zukunft haben Microsoft und Docker announced, dass es eine Windows-Version von Docker geben wird.

Edit: newer info

Beachten Sie, dass die Basis-Plattform und Betriebssystem entsprechen haben - das heißt heute Sie ARM Linux-Container auf ARM Linux und x64 Linux-Container auf x64 Linux laufen können, aber Sie können nicht mischen und zusammenpassen. Wenn Windows hinzugefügt wird, ist das Muster identisch - Sie können Windows-Container unter Windows, aber nicht unter Linux ausführen. Nicht ohne eine zusätzliche Virtualisierungsschicht (wie VirtualBox, VMWare, etc.).

Edit: Bezug auf die Wine Antwort, die ich nicht berücksichtigt hatte. Es passt irgendwie als "eine zusätzliche Virtualisierungsschicht", aber auf der OS-API-Ebene nicht auf der Hardware-Ebene. Und etwas eingeschränkt im Umfang von .Net-Programmen unterstützt.

In ähnlicher Weise können Sie möglicherweise Ihren .Net-Code in Docker unter Mono ausführen.

+1

Das beantwortet die Frage. Ich dachte so viel, aber es war mir nicht ganz klar (das heißt, alles, was ich gelesen habe, hat es weder beherrscht noch ausgeschlossen). So hinter dem Hype ist es nicht ganz die Silberkugel, die ich erhofft habe. :-( –

+1

Es stellt sich oft heraus, dass es in einem Softwareprodukt keine wirkliche Magie gibt :-) – Bryan

4

Docker baut auf Linux auf. Die einzige Möglichkeit, die .Net-App in Docker auszuführen, ist die Verwendung von Mono für Linux.

+2

Es lohnt sich, darauf hinzuweisen, dass es ein offizielles Microsoft Repository auf dem Hub gibt, mit einem asp.net Image, das auf Mono läuft: https://registry.hub.docker.com/repos/microsoft/ –

4

Ja, wenn Sie Wein und .NET installieren, hier ist ein Beispiel für eine solche Dockerfile

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

Extrakt

# Install .NET Framework 4.0 

RUN Wein wineboot & & xvfb geführten winetricks - unbeaufsichtigt dotnet40 corfonts

+0

Ein anderes Beispiel, wenn Sie Ihre PowerShell Fähigkeiten testen möchten, verwenden Sie die folgende Dockerfile https://registry.hub.docker.com/u/solarkennedy/powershell/dockerfile / – user2915097

2

Diese vielleicht sehr veraltete Frage, aber ich denke, es braucht ein Update Ja, Sie können Docker mit .net/.net Kern verwenden und wird in Visual Studio 2017.

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

Die keine Notwendigkeit zu verwenden, Wein oder Mono voll unterstützen.

0

unten Beispiel dockerfile .net 4.5 app

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

Ein bisschen spät, aber immer noch, wenn es jemand hilft laufen. Ja, wir können .Net-Anwendungen auf Docker ausführen, da Docker jetzt nativ von Windows unterstützt wird. Aber zuerst müssen Sie Ihre Windows-Version überprüfen, Ihre Windows-Build muss 14393.233 oder höher sein. Laden Sie Docker 1.13.0 oder höher herunter, und Sie können dann problemlos eine .Net App ausführen. This repository läuft durch eine Probe laufen. NET App.

Verwandte Themen