


Eingehende Analyse der Docker-Dateischichtung (detaillierte Beispiele)
Dieser Artikel vermittelt Ihnen relevantes Wissen über die Docker-Dateischichtung. In diesem Artikel werden einige Prinzipien der Docker-Dateischichtung beschrieben.
Wissensvorbereitung
- Docker nutzt tatsächlich einige Funktionen des Linux-Kernels, um eine Ressourcenisolation zu erreichen. Das Dateisystem ist eines davon, aber um Ressourcen effizienter zu machen, verwendet Docker eine hierarchische Dateisystemstruktur um das Dateisystem des Containers zu implementieren.
- Ich persönlich denke, dass das Prinzip ein bisschen dem Konzept der Paralleluniversen ähnelt. Manche Leute glauben, dass es in unserem Universum Paralleluniversen gibt, das heißt, dass die verschiedenen Entscheidungen, die wir treffen, unterschiedliche Universen verteilen und weiterlaufen kann zwischen diesen Paralleluniversen schwimmen. Hier ist es etwas ähnlich: Nachdem wir ein Image gepackt und über Docker Run ausgeführt haben, wird auf dieser Basis tatsächlich ein anderes Universum erstellt. Während der Container weiter ausgeführt wird, ist der Inhalt des Containers derselbe wie der des Originalimages. Die Dinge werden viele Abweichungen und Unterschiede aufweisen und nach und nach ein eigenes Universum bilden.
Docker-Dateisystem
Sie können den Dateisystem-Layering-Status jedes Containers von docker inspect [container-id] --format={{.GraphDriver}}
{map[LowerDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b-init/diff:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff MergedDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/merged UpperDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/diff WorkDir:/var/lib/docker/overlay2/52f456f455215e56b77087495a5d35323fbf1c0e0391f45349f386006c75865b/work] overlay2}
Es gibt hauptsächlich vier Typen
LowerDir
Das bedeutet, dass alle auf diesem Image basierenden Container auf dasselbe Dateisystem verweisen, das die Image-Ebene darstellt. Alle Container verwenden diese Ebene.
Woher kommt diese Ebene? Wir können uns das Bild ansehen, das wir verwenden
MergedDir
Dies ist ein anderer Container, der die untere Ebene und die obere Ebene kombiniert, um das endgültige Dateisystem im Container bereitzustellen
UpperDir
Dies dient dazu, die Vorgänge verschiedener Container aufzuzeichnen. Anschließend kann durch den Vergleich der unteren Ebene eine Zusammenführungsebene generiert werden der Spiegelschicht
docker run -d alpine:latest
docker inspect alpine --format={{.GraphDriver}}
Beachten Sie, dass UpperDir die obere Ebene des Bildes ist, das heißt, wir können auf dieser Ebene Änderungen vornehmen, die sich auf den später erstellten Container auswirken
Zeigen Sie die Dateisysteminformationen des Containers an
{map[MergedDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/merged UpperDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff WorkDir:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/work] overlay2}
docker inspect 9a118484ba --format={{.GraphDriver}}
Sie Sie können die untere Ebene des Containers sehen, d. h. In der oberen Ebene des Bildes werden die von uns am Container vorgenommenen Änderungen in der oberen Ebene widergespiegelt und die zusammengeführte Ebene wird organisiert und im Container angezeigt.
Wir können die Änderungen im Container-Dateisystem über die Befehlszeile überprüfen
{map[LowerDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14-init/diff:/var/lib/docker/overlay2/e4b90240aa77212dde6499a49c421d26977ed9fe8a1f6fcbaaaf77d85c67654e/diff MergedDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/merged UpperDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/diff WorkDir:/var/lib/docker/overlay2/3d3f32727c4f7867d43c1e61d635ac0ed22e95ff39c66240166dd6614b81fe14/work] overlay2}
Da wir den Container nicht bedient haben, gibt es keinen Unterschied zwischen diesem Container und dem Image
Wir starten einen anderen Container und lassen ihn für 300 schlafen Gehen Sie dann in den Container, um einige Dateiinformationen zu ändern
docker diff 9a118484ba
Überprüfen Sie die Änderungen im Container-Dateisystem
# docker exec -it ca91bb /bin/sh / # echo "helloWorld" > /tmp/hello.txt
Sie können sehen, dass diese Änderungen, die wir am Dateisystem vorgenommen haben, aufgezeichnet wurden
Diese Inhalte befinden sich tatsächlich im Verzeichnis von UpperDir
docker diff ca91bbffb801 C /root C /root/.ash_history C /tmp A /tmp/hello.txt
Ändern Sie den Containerinhalt vom Host
Aus den obigen Experimenten können wir erkennen, dass die obere Ebene der hinzugefügte Inhalt ist und mit der unteren Ebene zusammengeführt wird, um die Änderungen im Container widerzuspiegeln. Können wir also die obere Ebene direkt ändern, um den Container zu betreiben?
Wir fügen ein Verzeichnis demo in dem Verzeichnis hinzu, in dem sich Upper befindet, und berühren eine Datei darin Wenn wir diesen Container initialisieren möchten, können wir den gesamten Inhalt der oberen Ebene direkt löschen.
- Anwendung
-
Software-Installationsspuren finden
Im Verlauf früherer Projekte mussten Kunden uns immer mitteilen, welche Inhalte unsere Agentensoftware ändern wird, aber wir haben nie einen besseren Weg gefunden, den Kunden bereitzustellen Durch die Anwendung dieser Docker-Layer-Datei können wir den Agenten in einem Container bereitstellen und dann auf einen Blick klar erkennen, welche Verzeichnisse und Dateien die Software ändern wird.
... Video-Tutorial
》
Das obige ist der detaillierte Inhalt vonEingehende Analyse der Docker-Dateischichtung (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Verwendung von Docker unter Linux kann die Entwicklung und die Bereitstellungseffizienz verbessern. 1. Installieren Sie Docker: Verwenden Sie Skripte, um Docker auf Ubuntu zu installieren. 2. Überprüfen Sie die Installation: Führen Sie die Sudodockerrunhello-Welt aus. 3. Basisnutzung: Erstellen Sie einen Nginx-Container-Dockerrun-Namemy-Nginx-P8080: 80-DNGinx. 4. Erweiterte Verwendung: Erstellen Sie ein benutzerdefiniertes Bild, erstellen und führen Sie mit Dockerfile aus. 5. Optimierung und Best Practices: Befolgen Sie Best Practices zum Schreiben von Dockerfiles mit mehrstufigen Builds und DockerComponpose.

Der Kern der Docker -Überwachung besteht darin, die Betriebsdaten von Containern zu sammeln und zu analysieren, wobei hauptsächlich Indikatoren wie CPU -Nutzung, Speicherverbrauch, Netzwerkverkehr und Festplatten -I/A enthalten sind. Durch die Verwendung von Tools wie Prometheus, Grafana und Cadvisor können eine umfassende Überwachung und Leistungsoptimierung von Containern erreicht werden.

Dockerswarm kann verwendet werden, um skalierbare und hoch verfügbare Containercluster zu erstellen. 1) Initialisieren Sie den Schwarmcluster mithilfe von Dockerswarminit. 2) Schließen Sie sich dem Swarm-Cluster an, um Dockerswarmjoin zu verwenden-gesprochen:. 3) Erstellen Sie einen Dienst mit DockerServicecreate-Namemy-Nginx-Replicas3nginx. 4) Bereitstellen komplexer Dienste mit DockStackdeploy-Cdocker-compose.ymlmyApp.

Wie benutzt ich Docker und Kubernetes, um Container -Orchestrierung von Unternehmensanwendungen durchzuführen? Implementieren Sie es in den folgenden Schritten: Erstellen Sie ein Docker -Bild und drücken Sie es auf DockerHub. Erstellen Sie Bereitstellung und Dienst in Kubernetes, um die Anwendung bereitzustellen. Verwenden Sie Eingang, um den externen Zugriff zu verwalten. Wenden Sie Leistungsoptimierung und Best Practices wie mehrstufige Konstruktion und Ressourcenbeschränkungen an.

Docker -FAQs können in den folgenden Schritten diagnostiziert und gelöst werden: 1. Containerstatus und Protokolle anzeigen, 2. Netzwerkkonfiguration überprüfen, 3. Stellen Sie sicher, dass die Volumen korrekt montiert. Durch diese Methoden können Probleme im Docker schnell lokalisiert und behoben werden, wodurch die Systemstabilität und -leistung verbessert werden.

Docker ist ein Muss für DevOps-Ingenieure. 1.Docker ist eine Open -Source -Containerplattform, die Isolation und Portabilität durch Verpackung von Anwendungen und deren Abhängigkeiten in Container erreicht. 2. Docker arbeitet mit Namespaces, Kontrollgruppen und föderierten Dateisystemen. 3. Die grundlegende Nutzung beinhaltet das Erstellen, Ausführen und Verwalten von Containern. 4. Erweiterte Verwendung umfasst die Verwendung von DockerComponpose zur Verwaltung von Anwendungen mit mehreren Konten. 5. Zu den häufigen Fehlern gehören Containerausfall, Port -Mapping -Probleme und Datenpersistenzprobleme. Zu den Debugging -Fähigkeiten gehören das Anzeigen von Protokollen, das Eingeben von Containern und das Anzeigen detaillierter Informationen. 6. Leistungsoptimierung und Best Practices umfassen Bildoptimierung, Ressourcenbeschränkungen, Netzwerkoptimierung und Best Practices für die Verwendung von DockerFile.

Zu den Methoden zur Verbesserung der Docker Security Enhancement gehören: 1. Verwenden Sie den Parameter-Cap-Drop, um Linux-Funktionen zu begrenzen. Diese Strategien schützen Container, indem sie die Exposition gegenüber der Verwundbarkeit reduzieren und die Fähigkeiten des Angreifers einschränken.

Dockervolumes stellt sicher, dass Daten sicher bleiben, wenn Container neu gestartet, gelöscht oder migriert werden. 1. Erstellen Sie Volumen: DockervolumecreatemyData. 2. Führen Sie den Container- und Mount-Volumen aus: Dockerrun-it-vmydata:/App/DataUbuntubash. 3. Die erweiterte Nutzung umfasst Datenaustausch und Backup.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft