GNU/Linux >> Tutoriels Linux >  >> Linux

Les conteneurs Windows peuvent-ils être hébergés sur Linux ?

TL; DR :

Q : Les conteneurs Windows peuvent-ils fonctionner sous Linux ?

R : Non. Ils ne peuvent pas.

Les conteneurs utilisent les ressources et les pilotes du système d'exploitation sous-jacents, de sorte que les conteneurs Windows ne peuvent s'exécuter que sur Windows et que les conteneurs Linux ne peuvent s'exécuter que sur Linux.

Q : Mais qu'en est-il de Docker pour Windows ? Ou d'autres solutions basées sur des VM ?

R : Docker pour Windows vous permet de simuler l'exécution de Linux conteneurs sur Windows , mais sous le capot, une machine virtuelle Linux est créée, donc les conteneurs Linux s'exécutent toujours sous Linux et les conteneurs Windows s'exécutent sous Windows .

Bonus :Lisez ce très bel article sur l'exécution de conteneurs Docker Linux sur Windows.

Q : Alors, que dois-je faire avec une application .NET Framework 462, si je souhaite l'exécuter dans un conteneur ?

R : Ça dépend. Tenez compte des recommandations suivantes :

  • Si cela est possible, passez à .NET Core. Étant donné que .NET Core prend en charge la plupart des fonctionnalités principales de .NET Framework, et .NET Framework 4.8 sera la dernière version de .NET Framework

  • Si vous ne pouvez pas migrer vers .NET Core - Comme @Sebastian l'a mentionné - vous pouvez convertir vos bibliothèques en .NET Standard et avoir deux versions de l'application - une sur .NET Framework 4.6.2 et une sur .NET Core - c'est pas toujours évident. Visual Studio le prend assez bien en charge (avec le multi-ciblage), mais certaines dépendances peuvent nécessiter des précautions supplémentaires.

  • (Moins recommandé) Dans certains cas, vous pouvez exécuter des conteneurs Windows. Les conteneurs Windows deviennent de plus en plus matures, avec un meilleur support sur des plateformes comme Kubernetes. Mais pour pouvoir exécuter du code .NET Framework, vous devez toujours exécuter l'image de base de "Server Core", qui occupe environ 1,4 Go. Dans les mêmes cas rares, vous pouvez migrer votre code vers .NET Core, mais toujours exécuté sur le serveur Windows Nano, avec une taille d'image de 95 Mo.

Laissant également les anciennes mises à jour pour l'historique

Mise à jour 2 :08.2018

Si vous utilisez Docker pour Windows, vous pouvez maintenant exécuter les conteneurs Windows et Linux simultanément  :Exécution simultanée des conteneurs Docker Windows et Linux

Bonus : Pas directement lié à la question, mais vous pouvez désormais exécuter non seulement le conteneur Linux lui-même, mais également un orchestrateur comme Kubernetes :Kubernetes est maintenant disponible dans le canal stable de Docker Desktop

Mise à jour en 2018 :

La réponse originale en général est juste, MAIS il y a plusieurs mois, Docker a ajouté la fonctionnalité expérimentale LCOW (dépôt GitHub officiel).

À partir de ce message :

Docker pour Windows n'exécute-t-il pas déjà des conteneurs Linux ? C'est vrai. Docker pour Windows peut exécuter des conteneurs Linux ou Windows, avec prise en charge des conteneurs Linux via une machine virtuelle Hyper-V Moby Linux (à partir de Docker pour Windows 17.10, cette machine virtuelle 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 machine virtuelle Linux Hyper-V exécute un Dockerdaemon Linux, ainsi que tous vos conteneurs. Avec LCOW, le démon Docker s'exécute en tant que processus Windows (comme lors de l'exécution de conteneurs Windows Docker), et chaque fois que vous démarrez un conteneur Linux, Docker lance un hyperviseur Hyper-V minimal exécutant une machine virtuelle avec un noyau Linux, runc et les processus de conteneur s'exécutant au-dessus.

Parce qu'il n'y a qu'un seul démon Docker, et parce que ce démon s'exécute maintenant sur Windows, il sera bientôt possible d'exécuter les conteneurs Windows et LinuxDocker côte à côte, dans le même espace de noms réseau . Cela débloquera de nombreux scénarios de développement et de production passionnants pour les utilisateurs de Docker sous Windows.

Original :

Comme mentionné dans les commentaires de @PanagiotisKanavos, les conteneurs ne sont pas destinés à la virtualisation, et ils utilisent les ressources de la machine hôte . Par conséquent, pour l'instant, un conteneur Windows ne peut pas s'exécuter "tel quel" sur une machine Linux.

Mais - vous pouvez le faire en utilisant VM - car cela fonctionne sous Windows. Vous pouvez installer une VM Windows sur votre hôte Linux, ce qui permettra d'exécuter des conteneurs Windows.

Avec elle, IMHO l'exécute de cette façon dans une production l'environnement ne sera pas la meilleure idée.

En outre, cette réponse fournit plus de détails.


Non, vous ne pouvez pas exécuter de conteneurs Windows directement sur Linux.

Mais vous pouvez exécuter Linux sur Windows.

Windows Server 2016 est livré avec une image de base du système d'exploitation Ubuntu (après le service pack bêta de septembre 2016 ). C'est la raison pour laquelle vous pouvez exécuter Linux sur Windows et pas autrement. Vérifiez ici. Enfin, les conteneurs Linux pourraient fonctionner sous Windows avec le LinuxKit de Docker

Vous pouvez basculer entre les conteneurs de système d'exploitation Linux et Windows en cliquant avec le bouton droit sur Docker dans le menu de la barre d'état.


Linux
  1. 10 RAISONS DE CHANGER WINDOWS 10 VERS LINUX

  2. Linux – Comment désinstaller Grub ?

  3. Hébergement Linux vs Windows

  4. Impossible d'accéder à certains sites Web sous Linux (mais possible sous Windows)

  5. exFAT contre NTFS sous Linux

Introduction à la gestion des conteneurs Linux

Passer de Windows à Linux

Pourquoi les nerds utilisent Linux

Comment exécuter Windows 95 sous Linux

Sécurité Linux contre Windows

Windows peut-il utiliser un shell Linux au lieu de cmd ?