Avantages et inconvénients de l'utilisation de conteneurs Windows au lieu de conteneurs Linux pour Docker?

37

J'installe Docker pour Windows (CE) sur Windows 10 et le premier écran me demande:

[] Utiliser les conteneurs Windows au lieu des conteneurs Linux (cela peut être changé après l'installation)

Cela semble une décision importante, mais la documentation de Docker , la FAQ et le didacticiel sur les conteneurs Windows ne fournissent aucune information sur les raisons pour lesquelles je pourrais en choisir une sur l’autre.

Il serait utile d’avoir un aperçu objectif des ramifications de ce choix:

  • Une option sera-t-elle plus rapide que l'autre?
  • La décision affecte-t-elle l'utilisation des ressources système (RAM, CPU)?
  • Puis-je exécuter les mêmes images sur les deux types?
  • Est-ce que l'un est plus sécurisé que l'autre?

Toute autre distinction qui pourrait m'aider à parvenir à une conclusion serait la bienvenue.

Duncan Jones
la source
La réponse à cette question ne repose pas sur une opinion. Et c'est accepté. Donc pas besoin de fermer celui-ci.
Nils

Réponses:

19

Vous DEVEZ utiliser un hôte Windows pour les conteneurs Windows, mais vous pouvez utiliser un hôte Linux ou un hôte Windows pour les conteneurs Linux. Depuis avril 2018, vous pouvez même exécuter les deux en parallèle .

Une option sera-t-elle plus rapide que l'autre?

Non plus vite à quoi?

La décision affecte-t-elle l'utilisation des ressources système (RAM, CPU)?

Windows utilise plus de ressources que Linux - Windows Nano est aussi petit que possible

Puis-je exécuter les mêmes images sur les deux types?

Non, vous pouvez exécuter des applications .NET dans des conteneurs mono, mais vous ne pouvez pas démarrer un conteneur Windows sur un hôte Linux et inversement. Ce n'est pas la même chose que la virtualisation.

Est-ce que l'un est plus sécurisé que l'autre?

Encore une fois - plus en sécurité à quoi? Non, ils fonctionnent tous les deux avec Docker natif, ce qui n’a rien à voir avec hyper-v vs VMware et davantage avec Linux contre Windows. Tout dépend donc de ce que vous allez utiliser .net, python, java, ruby, etc.

Sum1sAdmin
la source
2
Deuxième ceci. Le complément de lecture de cette réponse containerjournal.com/2016/10/28/…
A.Newgate
4
Donc, si je choisis d'utiliser des conteneurs Linux, Docker va lancer une machine virtuelle Linux Hyper-V pour exécuter mes conteneurs, sinon il exécutera les conteneurs Windows de manière native? Et je ne peux pas exécuter les deux types de conteneur simultanément?
Duncan Jones
1
Docker pour Windows 10 vous permet de le faire - mais en production, vous auriez un essaim de dockers avec des hôtes Linux et Windows
Sum1sAdmin
Docker est basé sur lxc (Linux) - il utilisera le même noyau que l'hôte Docker. Si vous démarrez Windows dans un lxc, il doit virtualiser ou émuler le gain. Pas sûr que la même chose s'applique à win-docker, puisque win supporte linux.
Nils
1
@DuncanJones, à peine 3 jours après votre demande, un article de blog sur MSDN expliquait que vous pouvez maintenant exécuter des conteneurs Windows et Linux en parallèle.
Jonas Heidelberg le