Inhaltsverzeichnis
Docker - Union-Dateisystem und mehrschichtiges Verständnis des Spiegelungsprinzips
1. Union-Dateisystem
3. Layering-Praxis – verpflichten Sie sich, das Bild einzureichen.
Heim Betrieb und Instandhaltung Docker Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Feb 17, 2022 pm 06:48 PM
docker

Dieser Artikel vermittelt Ihnen relevantes Wissen über das gemeinsame Dateisystem und ein mehrschichtiges Verständnis der Docker-Spiegelungsprinzipien, einschließlich Fragen im Zusammenhang mit gemeinsamen Dateisystemen, hierarchischen Strukturen und mehrschichtigen Praktiken.

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Docker - Union-Dateisystem und mehrschichtiges Verständnis des Spiegelungsprinzips

1. Union-Dateisystem

UnionFS (Union File System)

UnionFS (Union File System): Union File System (UnionFS) Es ist ein mehrschichtiges, leichtes und leistungsstarkes Dateisystem, das Schicht für Schicht als einzelne Übermittlung überlagert werden kann. Gleichzeitig können verschiedene Verzeichnisse in dasselbe virtuelle Dateisystem eingebunden werden ein einzelnes virtuelles Dateisystem). Das Union-Dateisystem ist die Basis von Docker-Images. Bilder können durch Layering vererbt werden. Basierend auf dem Basisbild (ohne übergeordnetes Bild) können verschiedene spezifische Anwendungsbilder erstellt werden.

Darüber hinaus können verschiedene Docker-Container einige grundlegende Dateisystemschichten gemeinsam nutzen und gleichzeitig ihre eigenen einzigartigen Änderungsschichten hinzufügen, was die Speichereffizienz erheblich verbessert.

Das in Docker verwendete AUFS (AnotherUnionFS) ist ein Union-Dateisystem. AUFS unterstützt das Festlegen von schreibgeschützten, schreibgeschützten und Whiteout-Berechtigungen für jedes Mitgliedsverzeichnis (ähnlich einem Git-Zweig). Gleichzeitig verfügt AUFS über ein Konzept, das Hierarchien ähnelt. Nur-Lese-Berechtigungen können logisch inkrementell geändert werden (ohne Auswirkungen). der schreibgeschützte Teil).

Docker unterstützt derzeit gemeinsame Dateisystemtypen, einschließlich AUFS, btrfs, vfs und DeviceMapper.

Funktionen: Laden Sie mehrere Dateisysteme gleichzeitig, aber von außen ist nur ein Dateisystem sichtbar. Beim gemeinsamen Laden wird jede Ebene von Dateisystemen überlagert, sodass das endgültige Dateisystem alle zugrunde liegenden Dateien und Verzeichnisse enthält. .

Basis-Image

Basis-Image bedeutet einfach, dass es nicht auf einem anderen Image basiert und vollständig darauf aufgebaut ist. Es kann mit dem Fundament eines Gebäudes und dem Urheber verglichen werden von Docker-Bildern.

Basisbild hat zwei Bedeutungen: (1) Es ist nicht von anderen Bildern abhängig und wird von Grund auf neu erstellt. (2) Andere Bilder können darauf basierend erweitert werden.

Was man also als Basis-Image bezeichnen kann, sind normalerweise Docker-Images verschiedener Linux-Distributionen wie Ubuntu, Debian, CentOS usw.

Prinzip des Ladens von Docker-Images

Das Image von Docker besteht tatsächlich aus einer Schicht von Dateisystemen, und diese Schicht des Dateisystems ist UnionFS.

Typisches Linux erfordert zum Starten und Ausführen zwei FSs, bootfs + rootfs:

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

bootfs (Boot-Dateisystem) umfasst hauptsächlich Bpotloader und Kernel. Linux lädt beim ersten Mal das Bootfs-Dateisystem startet, am unteren Rand des Docker-Images befindet sich bootfs. Diese Schicht ist die gleiche wie bei unserem typischen Linux/Unix-System, einschließlich des Bootloaders Bootloader und des Kernel-Kernels. Wenn das Booten abgeschlossen ist, befindet sich der gesamte Kernel im Speicher. Zu diesem Zeitpunkt wurde das Recht zur Nutzung des Speichers von bootfs auf den Kernel übertragen. Zu diesem Zeitpunkt deinstalliert das System auch bootfs.

rootfs (Root-Dateisystem), zusätzlich zu bootfs. Enthält Standardverzeichnisse und -dateien wie /dev, /proc, /bin, /etc usw. in typischen Linux-Systemen. Roots sind verschiedene Betriebssystemdistributionen wie Ubuntu, Centos usw.

Warum gibt es im Docker-Image keinen Kernel?

In Bezug auf die Bildgröße ist ein relativ kleines Image nur etwas mehr als 1 KB oder ein paar MB groß, während die Kerneldatei Dutzende MB benötigt, also keinen Kernel im Image Nach dem Start als Container wird der Kernel des Hosts direkt verwendet, und das Image selbst stellt nur die entsprechenden Rootfs bereit, bei denen es sich um das für den normalen Betrieb des Systems erforderliche User-Space-Dateisystem handelt /dev/, /proc, /bin, /etc Verzeichnis, daher gibt es grundsätzlich kein /boot-Verzeichnis im Container und /boot speichert Dateien und Verzeichnisse, die sich auf den Kernel beziehen.

Da der Start- und Ausführungsprozess des Containers direkt den Kernel des Hosts verwendet, ruft er die physische Hardware nicht direkt auf, sodass keine Hardwaretreiber beteiligt sind, sodass der Kernel und die Treiber nicht verwendet werden. Und wenn es um die Technologie virtueller Maschinen geht, verfügt jede virtuelle Maschine über einen eigenen unabhängigen Kernel Das Docker-Image wird auch in Schichten heruntergeladen. Nehmen Sie als Beispiel das Herunterladen des Redis-Images:

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Sie können sehen, dass das neue Image Schicht für Schicht aus dem Basis-Image generiert wird. Jedes Mal, wenn Sie eine Software installieren, fügen Sie dem vorhandenen Image eine Ebene hinzu.

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)Warum übernimmt das Docker-Image diese Schichtstruktur?

Der größte Vorteil ist die gemeinsame Nutzung von Ressourcen. Wenn beispielsweise mehrere Images aus demselben Basisimage erstellt werden, muss der Host nur ein Basisimage auf der Festplatte behalten und nur ein Basisimage in den Speicher laden, damit es alle Container bedienen kann. und jede Ebene des Bildes kann geteilt werden.

Beschreibbare Containerebene

Docker-Bilder sind schreibgeschützt. Wenn der Container startet, wird eine neue beschreibbare Ebene über das Bild geladen.

Diese neue Ebene ist die beschreibbare Containerebene, und alles unter dem Container wird als Spiegelebene bezeichnet.

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Docker verwendet eine Copy-on-Write-Strategie, um die Sicherheit des Basisimages sowie eine höhere Leistung und Speicherplatznutzung zu gewährleisten.

  • Wenn der Container eine Datei lesen muss

Beginnen Sie mit der Suche nach unten und lesen Sie sie in den Speicher ein. Wenn sie sich bereits im Speicher befindet, können Sie sie direkt verwenden. Mit anderen Worten: Docker-Container, die auf demselben Computer ausgeführt werden, nutzen zur Laufzeit dieselben Dateien.

  • Wenn der Container eine Datei ändern muss

Suchen Sie von oben nach unten, suchen Sie sie und kopieren Sie sie in die Containerebene. Für den Container können Sie die Datei in der Containerebene sehen, aber nicht die Datei in Bildebene und ändern Sie dann die Dateien direkt auf der Containerebene.

  • Wenn der Container eine Datei löschen muss

Suchen Sie von oben nach unten und zeichnen Sie den Löschvorgang im Container auf. Es handelt sich nicht um einen echten Löschvorgang, sondern um einen sanften Löschvorgang. Dadurch wird die Bildgröße nur vergrößert, nicht verringert.

  • Wenn der Container Dateien hinzufügen muss

Fügen Sie diese direkt zur obersten beschreibbaren Ebene des Containers hinzu, ohne die Bildebene zu beeinträchtigen.

Alle Änderungen am Container, egal ob das Hinzufügen, Löschen oder Ändern von Dateien, erfolgen nur in der Containerebene. Nur die Containerebene ist beschreibbar und alle Bildebenen unterhalb der Containerebene sind schreibgeschützt, sodass das Bild von mehreren Containern gemeinsam genutzt werden kann.

3. Layering-Praxis – verpflichten Sie sich, das Bild einzureichen.

Erstellen Sie einen Container durch das Bild, bedienen Sie dann die Containerebene, lassen Sie die Bildebene unverändert und packen Sie dann die bearbeitete Containerebene und die Bildebene zur Übermittlung in ein neues Bild.

Docker-Commit: Erstellen Sie ein neues Image mit einem Container.

Syntax:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Nach dem Login kopieren

OPTIONS-Beschreibung:

  • **-a*Der übermittelte Bildautor;
  • **-c*Verwenden Sie den Dockerfile-Befehl, um das Bild zu erstellen;
  • **-m *Der Beschreibungstext beim Absenden ;
  • **-p * Den Container beim Festschreiben anhalten.

Verwendungsbeispiel: Erstellen Sie einen Container über ein Bild, bedienen Sie dann die Containerebene und packen Sie dann die betriebene Containerebene und die Bildebene zur Übermittlung in ein neues Bild.

1. Laden Sie zuerst das Tomcat-Image herunter und führen Sie es aus:

docker run -d --name="tomcat01" tomcat
Nach dem Login kopieren

3. Kopieren Sie die Dateien in das Verzeichnis webapps.dist des Tomcat-Containers im Webapps-Verzeichnis:

docker exec -it tomcat01 /bin/bash
Nach dem Login kopieren

5. Docker-Commit Senden Sie das Bild

Speichern Sie den Container dc904437d987 als neues Bild und fügen Sie die Übermittlerinformationen und Beschreibungsinformationen hinzu 1.0:

cp -r webapps.dist/* webapps
Nach dem Login kopieren

Sie können sehen, dass die Größe des neuen Tomcat-Images nach dem Commit etwas größer ist als die des ursprünglichen Tomcat-Images, da wir Dateien in die Containerebene kopiert haben.

Docker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Empfohlenes Lernen: „

Docker-Video-TutorialDocker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele)

Das obige ist der detaillierte Inhalt vonDocker-Image-Prinzip: gemeinsames Dateisystem und mehrschichtiges Verständnis (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

So lesen Sie die Docker -Version So lesen Sie die Docker -Version Apr 15, 2025 am 11:51 AM

Um die Docker -Version zu erhalten, können Sie die folgenden Schritte ausführen: Führen Sie den Befehl Docker "Docker --version" aus, um die Client- und Serverversionen anzuzeigen. Für Mac oder Windows können Sie auch Versionsinformationen über die Registerkarte Version der Docker -Desktop -GUI oder das Menü Docker Desktop anzeigen.

So ändern Sie die Docker -Bildquelle in China So ändern Sie die Docker -Bildquelle in China Apr 15, 2025 am 11:30 AM

Sie können zur Quelle der Inlandsspiegel wechseln. Die Schritte sind wie folgt: 1. Bearbeiten Sie die Konfigurationsdatei /etc/docker/daemon.json und fügen Sie die Spiegelquellenadresse hinzu; 2. Starten Sie den Docker Service Sudo SystemCtl Docker neu, um die Download -Geschwindigkeit und -stabilität des Bilddownloads zu verbessern.

So erstellen Sie einen Spiegel in Docker So erstellen Sie einen Spiegel in Docker Apr 15, 2025 am 11:27 AM

Schritte zum Erstellen eines Docker -Images: Schreiben Sie eine Dockerfile, die die Build -Anweisungen enthält. Erstellen Sie das Bild im Terminal mit dem Befehl Docker Build. Markieren Sie das Bild und weisen Sie Namen und Tags mit dem Befehl Docker Tag zu.

So aktualisieren Sie das Bild von Docker So aktualisieren Sie das Bild von Docker Apr 15, 2025 pm 12:03 PM

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

So erstellen Sie ein privates Repository von Docker So erstellen Sie ein privates Repository von Docker Apr 15, 2025 am 11:06 AM

Sie können Docker -private Repositorys erstellen, um Containerbilder sicher zu speichern und zu verwalten und strenge Kontrolle und Sicherheit bereitzustellen. Zu den Schritten gehören: Erstellen eines Repositorys, Gewährung von Zugriff, Bereitstellung eines Repositorys, Drückens eines Bildes und Ziehen eines Bildes. Zu den Vorteilen gehören Sicherheit, Versionskontrolle, reduzierter Netzwerkverkehr und Anpassung.

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So rufen Sie Docker lnmp an So rufen Sie Docker lnmp an Apr 15, 2025 am 11:15 AM

Docker LNMP Container Anrufschritte: Führen Sie den Container aus: Docker Run -d --Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack, um den Container IP zu erhalten: Docker Inspecy Lnmp -Container | GREP iPaddress Access Website: http: // & lt; Container IP & gt;/index.phpssh Access: Docker Exec -it lnmp -container Bash Access MySQL: Mysql -U Roo

See all articles