Vor- und Nachteile der Verwendung von Windows-Containern anstelle von Linux-Containern für Docker?

36

Ich installiere Docker für Windows (CE) unter Windows 10 und der erste Bildschirm fragt mich:

[] Verwenden Sie Windows-Container anstelle von Linux-Containern (dies kann nach der Installation geändert werden)

Dies scheint eine wichtige Entscheidung zu sein, doch die Docker-Dokumentation , Fragen ( FAQ) und das Windows-Container-Lernprogramm enthalten keine Informationen darüber, warum ich mich für eine andere entscheiden könnte.

Es wäre hilfreich, einen objektiven Überblick über die Auswirkungen dieser Wahl zu haben:

  • Wird eine Option schneller sein als die andere?
  • Beeinflusst die Entscheidung die Auslastung der Systemressourcen (RAM, CPU)?
  • Kann ich auf beiden Typen die gleichen Bilder ausführen?
  • Ist einer sicherer als der andere?

Alle anderen Unterscheidungen, die mir zu einer Schlussfolgerung verhelfen könnten, wären sehr willkommen.

Duncan Jones
quelle
Die Antwort darauf ist nicht meinungsbasiert. Und es wird akzeptiert. Also keine Notwendigkeit, diese zu schließen.
Nils

Antworten:

19

Sie MÜSSEN einen Windows-Host für Windows-Container verwenden. Sie können jedoch entweder einen Linux-Host oder einen Windows-Host für Linux-Container verwenden. Seit April 2018 können Sie sogar beide parallel betreiben .

Wird eine Option schneller sein als die andere?

Nein, schneller bei was?

Beeinflusst die Entscheidung die Auslastung der Systemressourcen (RAM, CPU)?

Windows verbraucht mehr Ressourcen als Linux - Windows Nano ist so klein wie es nur geht

Kann ich auf beiden Typen die gleichen Bilder ausführen?

Nein. Sie können .NET-Apps in Mono-Containern ausführen, aber Sie können keinen Windows-Container auf einem Linux-Host starten und umgekehrt - das ist nicht dasselbe wie Virtualisierung

Ist einer sicherer als der andere?

Nochmal - sicherer bei was? Nein. Beide verwenden natives Docker, es ist also nichts wie Hyper-V gegen VMware und mehr wie Linux gegen Windows, also hängt alles davon ab, was Sie mit .net, Python, Java, Ruby usw. ausführen.

Sum1sAdmin
quelle
2
Zweitens das. Das Lesen ergänzt diese Antwort containerjournal.com/2016/10/28/…
A.Newgate
4
Wenn ich Linux-Container verwende, startet Docker eine Hyper-V Linux-VM, um meine Container auszuführen. Andernfalls werden Windows-Container nativ ausgeführt. Und ich kann nicht beide Containertypen gleichzeitig ausführen?
Duncan Jones
1
Docker für Windows 10 ermöglicht Ihnen dies - aber in der Produktion würden Sie einen Docker-Schwarm mit Linux- und Windows-Hosts haben
Sum1sAdmin
Docker basiert auf lxc (Linux) - es wird derselbe Kernel wie der Docker-Host verwendet. Wenn Sie Windows in einem LXC starten, muss es Win virtualisieren oder emulieren. Ich bin mir nicht sicher, ob dies auch für win-docker gilt, da win Linux unterstützt.
Nils
1
@DuncanJones, nur 3 Tage nachdem Sie gefragt hatten, gab es einen Blog- Eintrag auf MSDN, in dem erklärt wurde, dass Sie jetzt Windows- und Linux-Container parallel ausführen KÖNNEN .
Jonas Heidelberg