web-dev-qa-db-fra.com

Si Docker fonctionne en mode natif sur Windows, pourquoi a-t-il besoin de Hyper-V?

Si la communauté Docker fonctionne en mode natif sur Windows, pourquoi at-elle besoin de Hyper-v? C'est-à-dire, Natif n'implique-t-il pas que Docker-Engine peut exécuter des instructions sur Windows? Il me semble que cela démarre toujours un Linux VM et s’exécute en même temps.

Pour moi, il semble que docker-toolbox utilise un hyper-visor Oracle exécutant Linux, alors que la communauté Docker utilise Hyper-V sous Linux. Y a-t-il une autre différence importante que je néglige?

Est-ce correct? Est-ce que je comprends mal le mot "natif", est-ce que docker utilise mal le mot ou y at-il un autre aspect qui me manque?

La raison pour laquelle je pose la question, c'est parce que j'ai remarqué que vous n'utilisez pas Docker-machine avec l'édition communautaire, et je me demande pourquoi. Est-ce que docker-machine est ce qui fonctionne normalement sous Windows, contrairement à Docker Engine? Je pense que le docker Word est surchargé et peut conduire à confusion dans ce cas :)

Merci d'avance!

14
TigerBear

Docker prend en charge Windows sous plusieurs variantes:

  1. Docker Toolbox qui inclut Docker Machine qui créera une image boot2docker dans VirtualBox. Ce sont des conteneurs Linux fonctionnant avec un noyau Linux à l'intérieur de la machine virtuelle. C'était à l'origine la seule option pour les utilisateurs Windows.

  2. Docker pour Windows utilisant Hyper-V pour exécuter la machine virtuelle Moby, basée sur LinuxKit, afin d'exécuter des images Linux. LinuxKit fournit un système d’exploitation Linux basé sur un conteneur et une certaine intégration lui permet de paraître moins semblable à un VM pour l’utilisateur final, par exemple. vous pouvez utiliser 127.0.0.1 au lieu de l'adresse IP de la VM VirutalBox. Si vous disposez de Hyper-V et que vous souhaitez exécuter des conteneurs Linux sous Windows, cette option est recommandée.

  3. Conteneurs Windows Server qui exécutent des fichiers binaires Windows sur le même système d'exploitation hôte, de la même manière que les conteneurs Linux sur un système d'exploitation Linux n'ont pas besoin de machine virtuelle.

  4. Conteneurs Hyper-V qui exécutent des fichiers binaires Windows à l'intérieur d'un VM distinct pour une isolation supplémentaire.

Vous pouvez en savoir plus sur ces deux dernières options dans Documents de Microsoft .

Il est important de noter que lorsque vous installez Docker pour Windows sur un serveur pris en charge, tel que 2016, vous disposez des options 2, 3 et 4, que vous pouvez basculer. Pour les conteneurs Linux et Windows, il existe un commutateur dans les paramètres qui affecte tous les conteneurs et commandes en cours d'exécution. Et entre les conteneurs Windows Server et les conteneurs Hyper-V, il existe une option --isolation sur la ligne de commande docker run. Je pense donc que vous devez disposer du support Hyper-V pour couvrir les versions 2 et 4, même si vous ne souhaitez que l'option 3.

5
BMitch

Les conteneurs Windows Server nécessitent une isolation Hyper-V sous Windows 10 afin de fournir aux développeurs la même version du noyau et la même configuration que celles utilisées en production. Pour plus d'informations à ce sujet, consultez la page À propos de Conteneur Windows .

1
Neha

La prise en charge de Docker sur Windows n’est pas native, Docker a été écrit pour être exécuté sur Linux initialement. La configuration requise pour exécuter Docker CE sous Windows est donc la suivante:

  1. La virtualisation doit être activée car docker-ce crée un VM sur Hyper-V. Étant donné que tous les hyperviseurs nécessitent l'activation de la virtualisation matérielle, Hyper-V n'est pas exceptionnel en la matière. Le programme d'installation de Docker pour Windows activera Hyper-V pour vous, si nécessaire, et redémarrera votre ordinateur.

  2. Pour les anciens systèmes Windows qui ne prennent pas en charge la virtualisation matérielle, il est recommandé d’utiliser Docker Toolbox, qui utilise Oracle Virtualbox pour créer des machines virtuelles hébergeant des conteneurs de menu fixe à la place de Hyper-V.

0
Lea Klein

D'après ce que j'ai compris, Hyper-V est l'implémentation par Windows d'une solution de machine virtuelle. 

Docker exécuté «nativement» sur Windows implique qu’il ne nécessite pas de logiciel tiers tel que virtualbox, vmware fusion ou parallèle installé pour fonctionner, mais utilise le logiciel Hyper-V fourni avec Windows 10.

0
Vice