2017-09-18 7 views
0

Ist es möglich, dass ich Docker ohne Host-Betriebssystem ausführen. Ich meine, nativ laufen. Es wäre ein Leistungsschub, so wie ich es für möglich halte.Docker ohne Host-Betriebssystem ausführen?

Angenommen, ich habe ein Werkzeug, das auf Linux-Kernel läuft. Ich erstelle einen Andock-Container mit einigen zusätzlichen Abhängigkeiten. Jetzt teile ich diesen Container mit einer anderen Person, die Linux hat, um diesen Container auszuführen.

Aber ich möchte diesen Container ohne Host-Betriebssystem ausführen. wie es wird Doppelschicht von OS mit Container sein.

+2

Docker teilt bereits denselben Kernel, der vom Host verwendet wird, es sei denn, Sie verwenden Docker Machine oder ein ähnliches Programm. Sie können nicht von zwei Kernen zu einem gehen, weil es bereits nur einen Kernel gibt; Der Overhead, den Sie uns fragen, wie Sie loswerden können, existiert überhaupt nicht. –

+0

Ok. Was ist also, wenn Host OS Windows und Docker Container Linux ist? –

+1

Dann startet Docker Machine eine (genau eine) Linux VM und verwendet den Kernel dieser VM für alle Ihre Container, egal wie viele Sie haben. Es gibt immer noch genau einen Linux-Kernel, daher gibt es keinen Platz, um weiter zu optimieren. –

Antwort

1

Docker selbst ist keine VM, daher gibt es keine Doppelschicht von OS. Docker ist ein Tool zum Ausführen von Anwendungen mit Einstellungen, die sie von anderen Anwendungen isolieren, die auf demselben Betriebssystemkern laufen. Docker enthält eine VM mit Docker für Windows und Docker für Mac, um den Linux-Kernel auszuführen, damit Sie Linux-Container ausführen können. Es gibt eine Option, native Windows-Container mit Server 2016 auszuführen, aber wenn Sie nach einem Minimum und Effizienz suchen, würde ich vorschlagen, woanders zu suchen.

Die nächstgelegene Dinge zu dem, was Sie suchen, sind:

  • Unikernels: Das sind Anwendungen in einen Kernel mit allem, was zusammengestellt sonst entfernt, entworfen innerhalb einer VM für eine sehr spezielle Aufgabe ausgeführt werden soll, oft sicherheitsbezogen. Diese befinden sich noch in einem frühen Entwicklungsstadium, aber Docker nutzt einige ihrer Technologien in ihrem Projekt.

  • LinuxKit (Teil des Moby Project): So erstellt Docker seine VMs für Docker für Windows und Docker für Mac. Es ist ein Container-basiertes Linux-Betriebssystem, das Sie mit nur den Containern kompilieren können, die Sie ausführen möchten. Der Schwerpunkt liegt dabei immer noch auf VMs, aber Bare-Metal ist eine Option.

  • Scratch-Basis-Image: Wenn Sie Ihre Anwendung statisch kompilieren, um alle Bibliotheksabhängigkeiten zu entfernen, können Sie einen Container ohne Shell oder andere OS-Tools haben. Dies wird häufig in Go-Binärdateien beobachtet, die als Docker-Container ausgeliefert werden, um eine einzelne Aufgabe mit einer sehr kleinen Angriffsfläche auszuführen. Als Docker-Container muss das zugrunde liegende Linux-Betriebssystem weiterhin die Binärdatei ausführen.

Verwandte Themen