Dieser Artikel richtet sich an Benutzer, die gerade erst mit der Verwendung von Linux-Containern und Docker beginnen. Ich habe eine grobe Übersicht zusammengestellt, um die Behälter zu verstehen, die schwer zu erreichen sind, wenn Sie sie nicht berührt haben.
Da es lang ist, habe ich es in zwei Teilen geschrieben: Einführung in Linux Container / Docker (Teil 2).
Ein Container ist einfach eine Technologie, die eine Anwendung vom Host-Betriebssystem isoliert. Erstellen Sie einen isolierten Bereich im Linux-Betriebssystem und erstellen Sie eine Umgebung, in der er ausgeführt werden kann, ohne Prozesse in anderen Containern oder Prozessen auf dem Host-Betriebssystem zu beeinträchtigen. Gleichzeitig kann eine saubere Umgebung bereitgestellt werden, indem eine vom vorhandenen Host-Betriebssystem getrennte Umgebung erstellt wird.
Bevor wir uns mit den Details von Containern befassen, beginnen wir mit Linux. Das Wort Linux hat zwei Bedeutungen: "Linux-Kernel" im engeren Sinne und "Linux-Distribution" im weiteren Sinne.
Der Kernel ist der Kern des Betriebssystems und führt die grundlegende Prozessverwaltung und Speicherverwaltung durch. Der Kernel ist allen Linux-basierten Betriebssystemen gemeinsam.
Der Linux-Kernel allein kann nicht direkt auf einem PC oder Server installiert werden. Eine "Linux-Distribution" ist ein Paket verschiedener Treiber, Bibliotheken und Anwendungen, die für die Interaktion mit HW erforderlich sind.
Beispiel:
** ⇒ Obwohl es anders aussieht, verwenden alle Linux-Betriebssysteme den gleichen Linux-Kernel. ** (Natürlich ist die Version anders)
LXC ist ein Tool zum Erstellen einer Containerumgebung mit den Funktionen des Linux-Kernels. Es werden hauptsächlich die folgenden Kernelfunktionen verwendet.
--Namespace… Teilen Sie Prozesse und NW-Ressourcen (z. B. virtuelle Netzwerkkarten) so auf, dass sie sich nicht gegenseitig stören können. --CGroup: Gruppe proklamiert und begrenzt die Ressourcen wie CPU und Speicher, die von jedem verwendet werden können.
** Es ist einfacher zu verstehen (glaube ich), einen Container als "isolierten Prozess" zu betrachten, als ihn als "kompakte VM" zu betrachten **
VM ... Emulieren Sie die Hardware und starten Sie das Betriebssystem Container ... Isoliert offenbar Prozesse und Verzeichnisse auf demselben Betriebssystem
** VMs und Container sind ähnlich und unterschiedlich. Der Ansatz ist genau das Gegenteil. ** **.
VM ... verursacht Overhead, um Hardware zu emulieren und das Betriebssystem auszuführen Container ... Die Entität ist nur ein Prozess, der auf dem Host-Betriebssystem ausgeführt wird, sodass fast kein Overhead entsteht. (*)
VM ... Installieren und verwenden Sie eine Menge Software wie einen physischen Server Container ... Grundsätzlich 1 Container 1 Software. Geben Sie keine unnötigen Bibliotheken und Befehle ein (*)
Sie können dies sehen, indem Sie den Befehl ps
im Container verwenden.
Normalerweise leitet Linux eine große Anzahl von untergeordneten Prozessen aus dem Init-Prozess von PID1 ab, aber Sie können sehen, dass PID1 im Container plötzlich zu Apache wird.
Normalerweise so. PID1 ist "init".
Es hat die folgenden Vorzüge. (Zitiert von der offiziellen LXC-Website)
Verbesserte Sicherheit Indem verhindert wird, dass eine Anwendung andere Anwendungen stört, kann der Schaden verringert werden, der beim Eindringen in das System verursacht wird.
Verbesserte lose Kupplung Da Anwendungen auf einem Host-Betriebssystem ausgeführt werden können, ohne sich gegenseitig zu stören, wirken sich Änderungen an einer Software nicht auf andere Software aus.
Systemabstraktion Der Container verbirgt das Betriebssystem und die Hardware des Hosts und kann eine Umgebung erstellen, die in jeder Umgebung stabil funktioniert.
In einem Container können Sie auf einfache Weise eine Reihe von Apps und Bibliotheken erstellen und zerstören, die zum Ausführen erforderlich sind.
Der Inhalt des Containers ist ein Verzeichnis oder ein Prozess auf dem Host-Betriebssystem, die durch den Namespace getrennt sind.
Grundsätzlich werden nur die für den Betrieb erforderlichen Mindestdateien in den Container gestellt. Es ist nicht unmöglich, es als Container für die gesamte Distribution zu verwenden.
Fahren Sie mit [Einführung in Linux Container / Docker (Teil 2)] fort (https://qiita.com/satken2/items/8515900a5a7b9bb0d0c9).
Recommended Posts