webentwicklung-frage-antwort-db.com.de

Wenn Docker nativ unter Windows ausgeführt wird, benötigt es Hyper-v

Wenn die Docker-Community nativ unter Windows ausgeführt wird, warum wird Hyper-v benötigt? I.E., impliziert nativ nicht, dass die Docker-Engine Anweisungen unter Windows ausführen kann? Es sieht für mich so aus, als würde es immer noch ein Linux VM starten und läuft mit-in.

Mir scheint, dass Docker-Toolbox ein Oracle-Hypervisier mit Linux verwendet, während die Docker-Community Hyper-V mit Linux verwendet. Gibt es einen weiteren wichtigen Unterschied, den ich übersehe?

Ist das richtig? Verstehe ich das Wort "native" falsch, verwendet Docker das Wort falsch, oder fehlt mir ein anderer Aspekt?

Ich frage nach dem Grund, weil ich festgestellt habe, dass Sie Docker-Computer nicht mit der Community-Edition verwenden, und ich frage mich, warum das so ist. Ist Docker-Maschine das, was unter Windows natürlich läuft, Docker Engine dagegen nicht? Ich denke der Word Docker ist überladen und führt in diesem Fall vielleicht zu Verwirrung :)

Danke im Voraus!

14
TigerBear

Docker-Unterstützung für Windows hat mehrere Varianten:

  1. Docker Toolbox, einschließlich Docker Machine, die ein boot2docker-Image in VirtualBox startet. Dies sind Linux-Container, die mit einem Linux-Kernel in der VM ausgeführt werden. Dies war ursprünglich die einzige Option für Windows-Benutzer.

  2. Docker für Windows mit Hyper-V zum Ausführen der auf LinuxKit basierenden Moby VM zum Ausführen von Linux-Images. LinuxKit bietet ein Container-basiertes Linux-Betriebssystem, und es gibt einige Integrationsmöglichkeiten, um es dem Endbenutzer weniger als VM erscheinen zu lassen, z. Sie können 127.0.0.1 anstelle der IP-Adresse der VirutalBox-VM verwenden. Wenn Sie über Hyper-V verfügen und Linux-Container unter Windows ausführen möchten, ist dies die bevorzugte Option.

  3. Windows Server-Container, auf denen Windows-Binärdateien auf demselben Host-Betriebssystem ausgeführt werden, ähnlich wie Linux-Container auf einem Linux-Betriebssystem keine VM benötigen.

  4. Hyper-V-Container, die Windows-Binärdateien in einem separaten VM ausführen, um zusätzliche Isolation zu erreichen.

Weitere Informationen zu den beiden letztgenannten Optionen finden Sie in Microsoft-Dokumente .

Wichtig ist zu beachten, dass Sie bei der Installation von Docker für Windows auf einem unterstützten Server wie 2016 die Optionen 2, 3 und 4 haben, zwischen denen Sie wechseln können. Für Linux- und Windows-Container gibt es einen Schalter in den Einstellungen , der sich auf alle laufenden Container und Befehle auswirkt. Zwischen Windows Server-Containern und Hyper-V-Containern befindet sich in der --isolation-Befehlszeile die Option docker run. Ich glaube, Sie benötigen Hyper-V-Unterstützung, um 2 und 4 abzudecken, selbst wenn Sie nur Option 3 wünschen.

5
BMitch

Windows unterstützt neben "Hyper-v-Isolation" auch "Prozessisolation".

Prozessisolationscontainer unter Windows werden ohne zusätzliche Virtualisierungsebene ausgeführt (ähnlich wie bei Docker unter Linux). Ich glaube, das ist es, wonach das OP sucht, wenn es um "native" Container geht.

Die Unterstützung der Prozessisolation ist noch relativ neu, aber die neuesten Versionen von Windows Server 2019 und Windows 10 können Windows-Container ohne den zusätzlichen Aufwand eines virtuellen Hyper-V-Hosts ausführen. Zu beachten ist, dass die Kernel-Version Ihres Windows-Container-Basisimages mit der Kernel-Version auf Ihrem Host-Computer übereinstimmen muss. Sie werden wahrscheinlich nicht in der Lage sein, genau dieselben Container zu verwenden, die Sie auf hyper-v ausführen.

Hier ist eine Windows-Containerversionskompatibilitätstabelle , die hervorhebt, welche Host-Betriebssysteme die process - oder hyperv -Isolation unterstützen.

Auch wenn diese Seite nicht darauf hinweist, ist Windows 10 Update 1809 das erste Update, das die Docker-Prozessisolation unterstützt, wie in Docker Engine Release Notes .

2
dk.

Windows Server-Container erfordern eine Hyper-V-Isolierung unter Windows 10, um Entwicklern dieselbe Kernelversion und -konfiguration bereitzustellen, die auch in der Produktion verwendet wird. Weitere Informationen hierzu finden Sie auf der Seite About Windows-Container .

1
Neha

Die Unterstützung für Docker unter Windows ist nicht systemeigen. Docker wurde für die anfängliche Ausführung unter Linux geschrieben. Die Voraussetzungen für das Ausführen von Docker CE unter Windows sind daher:

  1. Die Virtualisierung muss aktiviert sein, da Docker-ce eine VM unter Hyper-V erstellt. Da für alle Hypervisoren die Hardwarevirtualisierung aktiviert werden muss, ist Hyper-V in dieser Hinsicht keine Ausnahme. Das Docker für Windows-Installationsprogramm aktiviert bei Bedarf Hyper-V und startet den Computer neu.

  2. Bei älteren Windows-Systemen, die keine Hardwarevirtualisierung unterstützen, empfiehlt es sich, Docker Toolbox zu verwenden, die Oracle Virtualbox zum Starten von VMs verwendet, die Docker-Container anstelle von Hyper-V hosten.

0
Lea Klein

Mein Verständnis ist, dass Hyper-V die Implementierung einer Virtual Machine-Lösung von Windows ist. 

Docker, das unter Windows 'nativ' ausgeführt wird, impliziert, dass für die Ausführung keine Drittanbieter-Software wie Virtualbox, VMware Fusion oder Parallelen erforderlich ist. Stattdessen wird die Hyper-V-Software verwendet, die mit Windows 10 geliefert wird.

0
Vice