web-dev-qa-db-fra.com

Machine Linux avec docker déployer le conteneur Windows

J'ai un serveur Linux avec 16 Go de RAM avec Docker Host installé. Je voudrais y déployer un conteneur Windows Server. C'est possible? Quelqu'un vient d'essayer cette solution?

36
Claudio Pomo

Mise à jour 2019

Comme indiqué par duct_tape_coder in les commentaires :

Microsoft a amélioré les options réseau pour les conteneurs et maintenant autorise plusieurs conteneurs par pod avec un espace de noms amélioré .


En théorie (réponse originale oct 2015):

Il n'y a pas de "conteneur Windows" en cours d'exécution sur un hôte Linux.
Et un conteneur Linux ne fonctionnerait pas directement sur un serveur Windows, car il repose sur des appels système vers un noyau Linux .

Vous pouvez certainement exécuter ces conteneurs Linux sur n'importe quelle machine Windows via une machine virtuelle.
C'est ce que la boîte à outils Docker va s'installer .

Il y aura bientôt compatible avec Docker sur Windows , mais ce serait pour le conteneur Windows, pas les conteneurs Linux.

pdate 2017 : oui, LinuxKit permet d'exécuter un conteneur linux via un wrapper d'isolement Hyper-V sur une plate-forme Windows, via un système d'exploitation Linux minimal construit à partir de ( linuxkit .
C'est toujours la même idée: Linux tournant dans un VM sous Windows.
Ce n'est pas un serveur Linux déployé sur un serveur Windows: uniquement déployé à l'intérieur d'un serveur Linux fonctionnant dans un VM sous Windows.


En fait ... (mise à jour décembre 2016)

Voir " Linux et Windows, vivre ensemble, chaos total! (OK, Kubernetes 1.5) "

Kubernetes 1.5 inclut la prise en charge alpha des conteneurs Windows Server, un modèle de noyau partagé similaire à Docker, et des conteneurs Hyper-V, un modèle à noyau unique qui offre une meilleure isolation pour les environnements multi-locataires (au prix d'une plus grande latence).
Le résultat final est la possibilité de créer un cluster Kubernetes unique qui comprend non seulement des nœuds Linux exécutant des conteneurs Linux ou des nœuds Windows exécutant des conteneurs Windows, mais les deux côte à côte, pour une expérience véritablement hybride.
Par exemple, un seul service peut avoir des POD utilisant des conteneurs Windows Server et d'autres POD utilisant des conteneurs Linux .

Mais:

Bien qu'il semble entièrement fonctionnel, il semble y avoir certaines limites dans cette version initiale, notamment:

  • Le maître Kubernetes doit toujours fonctionner sous Linux en raison de dépendances dans la façon dont il est écrit . Il est possible de porter sur Windows, mais pour le moment, l'équipe estime qu'il est préférable de concentrer ses efforts sur les composants clients.
  • Il n'y a pas de support natif pour les superpositions réseau pour les conteneurs dans Windows, donc la mise en réseau est limitée à L3 . (Il existe d'autres solutions, mais elles ne sont pas disponibles en mode natif.)
    Le Kubernetes Windows SIG travaille avec Microsoft pour résoudre ces problèmes, cependant, et ils espèrent avoir progressé avec la sortie de Kubernetes 1.6 au début de l'année prochaine.
  • La mise en réseau entre les conteneurs Windows est plus compliquée car chaque conteneur obtient son propre espace de noms réseau, donc il est recommandé d'utiliser des pods à conteneur unique pour l'instant .
  • Les applications exécutées dans les conteneurs Windows Server peuvent s'exécuter dans n'importe quelle langue prise en charge par Windows. Vous POUVEZ exécuter des applications .NET dans des conteneurs Linux, mais uniquement si elles sont écrites en .NET Core. Le noyau .NET est également pris en charge par le système d'exploitation Nano Server, qui peut être déployé sur des conteneurs Windows Server.

38
VonC