Dieser Artikel vermittelt Ihnen relevantes Wissen über die Docker-Dateischichtung. In diesem Artikel werden einige Prinzipien der Docker-Dateischichtung beschrieben.
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
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
Dies ist ein anderer Container, der die untere Ebene und die obere Ebene kombiniert, um das endgültige Dateisystem im Container bereitzustellen
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}}
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}}
{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
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.
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!