web-dev-qa-db-fra.com

Puis-je utiliser une application Windows .Net avec Docker?

Je suis un peu dérouté par toutes les discussions sur Docker et son intégration au monde de la virtualisation. Voici donc une question directe: puis-je configurer une application .Net (qui s'exécute normalement sous Windows 7, etc.) pour qu'elle s'exécute dans un conteneur Docker, puis l'exécuter sur «tout» hôte prenant en charge Docker? 

TIA.

28
Neil Haughton

Pas aujourd'hui. À l'avenir, Microsoft et Docker ont annoncé que vous disposerez d'une version Windows de Docker.

Edit: informations plus récentes

Notez que la plate-forme de base et le système d’exploitation doivent correspondre - c’est-à-dire qu’aujourd’hui, vous pouvez exécuter les conteneurs ARM Linux sur les conteneurs ARM Linux et x64 sous Linux x64, mais vous ne pouvez pas mélanger et faire correspondre. Lorsque Windows est ajouté, le modèle sera le même: vous pourrez exécuter des conteneurs Windows sous Windows, mais pas sous Linux. Non sans une couche supplémentaire de virtualisation (telle que VirtualBox, VMWare, etc.).

Edit: respect pour le Wine answer, que je n'avais pas envisagé. Cela correspond en quelque sorte à "une couche supplémentaire de virtualisation", mais au niveau de l'API du système d'exploitation, pas au niveau du matériel. Et un peu limité dans la portée des programmes .Net pris en charge.

De même, vous pourrez peut-être exécuter votre code .Net dans Docker à l’aide de Mono .

13
Bryan

Docker repose sur Linux. Le seul moyen d’exécuter l’application .Net dans Docker consiste à utiliser Mono pour Linux.

4
Günter Zöchbauer

Oui, si vous installez wine et .NET, voici un exemple d'un tel fichier Dockerfile

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

extrait

# Install .NET Framework 4.0

RUN vin wineboot & & xvfb-run winetricks - corefonts dotnet40 sans surveillance

4
user2915097

Cette question est peut-être très dépassée, mais je pense que cela nécessite une mise à jour. Oui, vous pouvez utiliser Docker avec le noyau .net/.net et serez pleinement compatible avec Visual Studio 2017.

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

Il n'est pas nécessaire d'utiliser WINE ou Mono.

2
CRAIG ADAMS

Un peu tard, mais quand même si cela peut aider quelqu'un ..__ Oui, nous pouvons exécuter des applications .Net sur Docker car le menu fixe est maintenant pris en charge avec Windows de manière native. Mais vous devez d’abord vérifier votre version de Windows, votre version de Windows doit être 14393.233 ou supérieure. Téléchargez Docker 1.13.0 ou une version ultérieure, puis exécutez facilement une application .Net. Ce référentiel Décrit l'exécution d'un exemple d'application .Net.

1
Ali Kahoot

voici l'exemple de fichier docker pour exécuter l'application .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
0
harishr