Les conteneurs Windows peuvent-ils être hébergés sous linux?

Est-ce possible d'exécuter Windows Conteneurs sur Linux ? Le scénario est basé sur une solution écrite dans le .NET (ancien net) et le utilisateur Linux qui veut exécuter ceci avec Docker pour fournir une API écrite net462 sur le localhost .

j'utilise un bêta de Docker pour windows

si non, alors pourquoi peut windows utilise des conteneurs linux et pas vice-versa?

EDIT:

comme quelque temps est passé et cette question Est populaire. Je voudrais ajouter une note ici que la solution est d'utiliser le nouveau netstandard. Cela m'a permis d'empaqueter 4.6.2 framework dans une nouvelle bibliothèque.

94
demandé sur Sebastian 506563 2017-02-10 14:44:28

6 réponses

Update2: 08.2018 Si vous utilisez Docker-for-Windows, vous pouvez maintenant exécuter les deux conteneurs windows et linux simultanément : https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows-and-linux-containers-simultaneously /

Bonus: pas directement lié à la question, mais vous pouvez maintenant exécuter non seulement le linux conteneur lui-même, mais aussi orchestrateur comme kubernetes: https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel /

mise à jour: 2018:

réponse Originale à cette question en général, est en droit, MAIS il y a plusieurs mois, docker ajoutée fonctionnalité expérimentale LCOW ( officiel github ).

à Partir de ce post :

N'a pas de menu fixe pour Windows déjà le fonctionnement de Linux containers? C'est le droit. Docker pour Windows peut exécuter des conteneurs Linux ou Windows, avec le soutien pour les conteneurs Linux via un Hyper-V Moby Linux VM (à partir de Docker pour Windows 17.10 cette VM est basée sur LinuxKit).

la configuration pour exécuter des conteneurs Linux avec LCOW est beaucoup plus simple que l'architecture précédente où une VM Linux Hyper-V exécute un Linux Docker daemon, avec tous tes containers. Avec LCOW, le démon Docker s'exécute comme un processus Windows (même chose que lorsque vous exécutez Docker Windows containers), et chaque fois que vous démarrez un conteneur Linux Docker lance un hyperviseur Hyper-V minimal tournant une VM avec un Linux le noyau, le runc et les processus container qui fonctionnent sur le dessus.

parce qu'il n'y a qu'un seul démon Docker, et parce que ce démon maintenant fonctionne sous Windows, I T sera bientôt possible d'exécuter Windows et Linux Conteneurs Docker côte à côte, dans le même espace réseau . Ce va débloquer beaucoup de scénarios de développement et de production passionnants pour Utilisateurs de dockers sur Windows.

Origine:

comme mentionné dans les commentaires de @PanagiotisKanavos, les conteneurs ne sont pas pour virtualisation, et ils utilisent les ressources de la machine hôte . En conséquence, pour l'instant Windows container ne peut pas exécuter "as-is" sur la machine linux.

Mais - vous pouvez le faire en utilisant VM - comme il fonctionne sur windows. Vous pouvez installer windows VM sur votre hôte linux, ce qui permettra d'exécuter des conteneurs windows.

avec elle, IMHO exécuter de cette façon sur L'environnement PROD ne sera pas la meilleure idée.

Aussi, cette réponse fournit plus de détails.

52
répondu evgenyl 2018-08-15 06:47:35

Non, vous ne pouvez pas exécuter des conteneurs windows directement sur Linux.

mais Windows Server est livré avec l'image de base de ubuntu OS ( après Septembre 2016 bêta Service pack ). C'est la raison pour laquelle vous pouvez utiliser linux sous windows et pas autrement. Découvrez ici. https://thenewstack.io/finally-linux-containers-really-will-run-windows-linuxkit /

vous pouvez changer entre les conteneurs OS Linux et windows en cliquant à droite sur le panneau dans le menu de la barre.

enter image description here

enter image description here

10
répondu Karthikeyan VK 2018-07-03 14:43:06

vous pouvez utiliser des conteneurs Windows à l'intérieur d'une machine virtuelle (le système d'exploitation invité doit correspondre aux exigences - Windows 10 Pro ou Windows 2016).

par exemple vous pouvez utiliser VirtualBox , il suffit d'activer Hyper-V dans L'Interface Système / accélération / paravirtualisation.

après cela si Docker ne démarre pas à cause d'une erreur, utilisez le" Switch to Windows containers..."dans les paramètres.

(ce pourrait être déplacé comme un commentaire à la réponse acceptée, mais je n'ai pas assez de réputation pour le faire)

3
répondu BalintPogatsa 2018-01-10 15:51:47

contrairement à la virtualisation, la conteneurisation utilise le même OS hôte. Ainsi, le conteneur construit sur linux ne peut pas être exécuté sur windows et vice versa.

dans windows, vous devez prendre l'aide de la virtualisation (en utilisant Hyper-v) pour avoir le même os que celui de vos conteneurs et ensuite vous devriez pouvoir exécuter le même.

Docker for windows est une application similaire qui est construite sur Hyper-v et aide à exécuter Linux Docker container sur windows. Mais autant que je sache, il n'y a rien en tant que tel qui aide à exécuter des conteneurs windows sur linux.

3
répondu sunil bhardwaj 2018-05-30 12:36:56

vous pouvez exécuter MSSQL et DOTNET sur Linux, et donc dans des conteneurs Linux, de nos jours.

voir: https://hub.docker.com/r/microsoft/mssql-server-linux /

aussi: https://hub.docker.com/r/microsoft/dotnet /

0
répondu dagelf 2018-06-26 23:31:37

Windows containers ne fonctionnent pas sous Linux et vous ne pouvez pas non plus exécuter Linux containers directement sous Windows.

-4
répondu Ehsan 2017-07-18 14:35:48