Es gibt Docker-ähnliche Software: 1. Podman, eine daemonlose Open-Source-Container-Engine für Linux; 2. LXD, eine Open-Source-Container-Engine, die speziell für LXC-Linux-Container entwickelt wurde; Red Hats Ein OCI-Image-Erstellungstool, das für Containersysteme entwickelt wurde. 4. RunC usw.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker20-Version, Dell G3-Computer.
Es gibt eine Docker-ähnliche Software.
Docker wurde 2013 geboren und hat das Konzept der Container so populär gemacht, dass die meisten Menschen das Konzept der Container immer noch mit „Docker-Containern“ gleichsetzen.
Als erstes Unternehmen, das die Technologie einführt, legt Docker die Standards fest, die neue Marktteilnehmer einhalten müssen. Docker verfügt beispielsweise über eine große System-Image-Bibliothek. Alle Alternativen müssen dasselbe Bildformat verwenden, während sie versuchen, einen oder mehrere Teile des gesamten Stapels, auf dem Docker basiert, zu ändern.
In dieser Zeit entstanden neue Containerstandards und das Container-Ökosystem entwickelte sich in verschiedene Richtungen. Heutzutage gibt es neben Docker viele Möglichkeiten, Container zu verwenden.
Docker-ähnliche Containerverwaltungssoftware
1. Podman
Podman ist eine von RedHat entwickelte daemonlose Open-Source-Linux-Container-Engine, die zum Erstellen, Ausführen und Verwalten von Linux-OCI-Containern verwendet wird mit Containerbildern. Obwohl Podman eine Befehlszeilenschnittstelle ähnlich wie Docker bereitstellt, funktioniert es nicht auf die gleiche Weise.
Ein wesentlicher Unterschied zwischen Docker und Podman besteht darin, dass Docker eine dauerhafte, autarke Laufzeit zur Verwaltung seiner Objekte oder einen Daemon namens Dockerd ausführt, während Podman nicht auf einen Daemon angewiesen ist, sondern Podman den Container als untergeordnetes Element startet Der Prozess interagiert auch direkt mit der Registrierung und dem Linux-Kernel über Laufzeitprozesse. Aus diesem Grund wird Podman als daemonlose Containertechnologie bezeichnet.
Das Fehlen eines Daemons erhöht die Flexibilität von Podman als Container-Engine und beseitigt die Abhängigkeit von einem einzelnen Prozess. Ein weiterer großer Unterschied zwischen Podman und Docker besteht darin, dass keine Root-Rechte erforderlich sind. Diese Funktion bietet einen zusätzlichen Sicherheitspuffer und schränkt bestimmte potenziell gefährliche Prozesse ein, die kritische Systemeinstellungen manipulieren und den Container und die darin enthaltenen Anwendungen angreifbar machen könnten.
Darüber hinaus kann Podman Pods ausführen – Sammlungen eines oder mehrerer Container, die als einzelne Einheit verwaltet werden und einen gemeinsamen Ressourcenpool nutzen. Mit dieser Funktion können Podman-Benutzer ihre Arbeitslasten auf Kubernetes verschieben.
2, LXD
LXD ist eine Open-Source-Container-Engine, die speziell für LXC-Linux-Container entwickelt wurde. LXC ermöglicht es Benutzern, Anwendungen in isolierten Containern oder virtuellen Umgebungen ähnlich virtuellen Maschinen auszuführen, ohne den technischen Aufwand der Verwaltung einzelner Kerne. LXD bietet eine Schnittstelle zur LXC-Softwarebibliothek und erstellt einen Daemon-Prozess, der die Vernetzung, Datenspeicherung und Verwaltung mehrerer LXC-Container übernimmt. Obwohl LXC als eigenständiges Tool ausgeführt werden kann, verfügt es über einen begrenzten Funktionsumfang. LXD bietet diese zusätzlichen Funktionen und ist daher für die Funktion auf LXC angewiesen.
Die Hauptunterschiede zwischen LXD und Docker sind wie folgt. Im Gegensatz zum Designmuster von Docker, das einen einzelnen Prozess pro Container empfiehlt, können Container in LXC/LXD mehrere Prozesse ausführen. Darüber hinaus sind Docker-Container portabler und abstrahieren Ressourcen effektiver als LXD. Schließlich unterstützt Docker die Ausführung in Windows- und macOS-Umgebungen, LXD unterstützt jedoch nur Linux.
3. Containerd
Containerd ist eine erweiterte Container-Laufzeitumgebung, die eine Schnittstelle zwischen dem Betriebssystem und der Container-Engine bereitstellt, indem unten runc ausgeführt wird. runc ist ein unter Windows und Linux unterstützter Daemon, der betriebssystemspezifische Funktionen abstrahiert, um die Ausführung und Überwachung von Containern sowie die Verwaltung von Bildübertragungen und -speicherung zu erleichtern.
Diese von Containerd bereitgestellte Abstraktionsebene eliminiert die Komplexität mehrerer Systemaufrufe auf niedriger Ebene und ermöglicht so die Portabilität von Containern. Im Gegensatz zu Docker übernimmt Containerd jedoch nicht die Image-Erstellung oder Volume-Erstellung. Interessanterweise war Containerd die Standardlaufzeit für Docker und ist jetzt ein eigenständiges Tool, genau wie runc. Dies macht Containerd auch zu einem praktischen Orchestrierungstool wie Kubernetes, einer der beliebtesten Docker-Alternativen.
4. Buildah
Buildah ist ein OCI-Image-Building-Tool, das von der Red Hat Foundation für Containersysteme entwickelt wurde. Es handelt sich um ein Tool, das ähnliche Funktionen bietet wie die Ausführung von „Docker Build“ in Docker. Buildah wird oft zusammen mit Podman verwendet, um sich gegenseitig zu ergänzen. Beispielsweise nutzt Podman eine Teilmenge der Buildah-Funktionalität unter der Haube, um seinen Build-Prozess zu implementieren.
Es kann Images aus einer Docker- oder Containerdatei erstellen und dieselben Images erzeugen wie die mit Docker erstellten, da diese Images OCI-kompatibel sind. Darüber hinaus bietet es eine feinkörnige Kontrolle über Bildebenen und ermöglicht so mehrere Änderungs-Commits innerhalb einer einzelnen Ebene. Es bietet auch die Möglichkeit, ein Image von Grund auf zu erstellen, ein Image, das keinen Inhalt enthält, was Benutzern die Freiheit gibt, nur die Pakete hinzuzufügen, die zum Ausführen der Anwendung erforderlich sind. Schließlich können Benutzer in Buildah im Gegensatz zu Docker nur die Images sehen, die sie erstellen.
5, BuildKit
BuildKit ist ein Moby-Projekt der zweiten Generation, das Bilder erstellt und als experimentelle Funktion in neueren Docker-Versionen verfügbar ist. Wie Docker wird es mit einem Daemon ausgeführt. Einer der Hauptunterschiede zwischen Standard-Docker-Builds und BuildKit besteht jedoch darin, dass ersteres Schicht für Schicht erstellt, während letzteres eine parallele Build-Verarbeitung bietet. Diese Funktion verbessert die Leistung und beschleunigt die Erstellung. BuildKit ermöglicht außerdem das Überspringen ungenutzter Phasen, verbessert inkrementelle Builds und ermöglicht Rootless-Builds. Darüber hinaus verwendet BuildKit einen Cache, um die Notwendigkeit zu reduzieren, jede Ebene des Bildes neu zu erstellen.
6. Kaniko
Kaniko ist ein Google-Image-Builder-Tool, das Images aus Docker-Dateien erstellen kann. Es ist wie Buildah dämonenlos, konzentriert sich jedoch mehr auf die Erstellung von Images in Kubernetes. Kaniko ist für lokale Entwicklungsinstanzen nicht sehr praktisch, da es normalerweise als Image mit einem Container-Orchestrator wie Kubernetes ausgeführt wird. Kaniko kann ein nützliches Tool für kontinuierliche Integration und Bereitstellungspipelines in Kubernetes-Clustern sein.
7, RunC
RunC war zuvor ein in die Docker-Architektur eingebettetes Modul und wurde 2015 als eigenständiges Tool veröffentlicht. Seitdem hat es sich zu einer weit verbreiteten, standardisierten und interoperablen Container-Laufzeitumgebung entwickelt. DevOps-Teams können es als Teil von Docker oder anderen benutzerdefinierten Container-Engines verwenden. RunC gehört zum Container-Laufzeitteil des Containerisierungs-Ökosystems. Die Container-Laufzeit ist die untergeordnete Komponente der Container-Engine, die die Ausführung des Containers übernimmt.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonGibt es eine Docker-ähnliche Software?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!