Überprüfen Sie, wo das Docker-Image gezogen und platziert wird

PHPz
Freigeben: 2023-05-13 18:41:37
Original
5785 Leute haben es durchsucht

Docker ist eine Open-Source-Containertechnologie, mit der Anwendungen erstellt, veröffentlicht und ausgeführt werden können. Mithilfe von Docker-Images können Benutzer vorgefertigte Anwendungen oder Containerumgebungen einfach und schnell herunterladen und installieren.

Docker-Image besteht aus mehreren Ebenen (Ebene), jede Ebene enthält einen Schnappschuss des Dateisystems. Wenn ein Benutzer ein Docker-Image abruft, erhält er tatsächlich alle Ebenen des Images aus der Docker-Registrierung und kombiniert sie, um ein vollständiges Docker-Image zu erstellen.

Also, wo ist der lokale Speicherort des Docker-Images? In diesem Artikel wird es Ihnen ausführlich vorgestellt.

  1. Docker-Image-Liste anzeigen

Zuerst müssen wir die aktuelle lokale Docker-Image-Liste anzeigen. Geben Sie im Terminal den folgenden Befehl ein:

docker images
Nach dem Login kopieren

Nach der Ausführung wird eine Liste aller Docker-Images auf dem Computer aufgelistet, einschließlich Image-ID, Image-Name, Image-Label, Image-Größe und anderen Informationen. Wie im Bild unten gezeigt:

Docker images

Wie auf dem Bild oben zu sehen ist, hat jedes Bild eine eindeutige ID, einen Namen und einige Tags (auch bekannt für die Version). Unter diesen stellt das REPOSITORY-Feld den Namen des Bildes dar, das TAG-Feld stellt die Beschriftung des Bildes dar und das IMAGE-ID-Feld ist die eindeutige Kennung des Bildes.

  1. Speicherort für Docker-Bilder anzeigen

In Docker besteht jedes Bild aus mehreren Ebenen (Ebene). Wenn ein Benutzer ein Docker-Image herunterlädt oder erstellt, werden daher tatsächlich alle Ebenen des Images in den lokalen Speicher heruntergeladen.

In Linux-Systemen werden Docker-Images tatsächlich im Verzeichnis /var/lib/docker gespeichert. Geben Sie im Terminal den folgenden Befehl ein: /var/lib/docker目录下的。在终端输入下面命令:

sudo ls -l /var/lib/docker/
Nach dem Login kopieren

执行后,终端将会显示出/var/lib/docker/目录下所有的文件和文件夹列表。其中,/var/lib/docker/image文件夹是Docker储存镜像的主要位置。如下图所示:

Überprüfen Sie, wo das Docker-Image gezogen und platziert wird

/var/lib/docker/image/overlay2/imagedb/content/sha256目录下,存储了所有已下载的Docker镜像(以镜像ID命名),即所有层的存储位置。在每个镜像ID目录下,都有一个名为“real”或者“diff”文件,代表该层的存储位置。

  1. 确认镜像层存储位置

对于Docker镜像的每一层,其存储位置可以通过执行下面的命令来确认:

docker history <image_name>:<tag>
Nach dem Login kopieren

例如,对于nginx镜像,执行命令:

docker history nginx:latest
Nach dem Login kopieren

将会输出以下结果:

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
84cf8d0a2e04        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  EXPOSE 80                    0B
<missing>           3 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B
<missing>           3 weeks ago         /bin/sh -c set -x  && apt-get update  && ap…   68.2MB
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=2.1.0.6      0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.16.1     0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B
<missing>           4 weeks ago         /bin/sh -c #(nop) ADD file:7fbfce9f6a99e63a5…   63.2MB
Nach dem Login kopieren

其中,每一层的SIZE字段表示该层的实际占用空间大小。该命令输出结果的第一列就是Docker镜像每一层的ID,从上到下依次代表镜像的各个层。

我们可以根据这个命令的输出结果,确认每一层具体的存储位置。例如,在上述命令的输出结果中,最后一列是该层的描述信息,其中包括了该层的原始命令和参数。

对于nginx镜像的第一层(ID为“84cf8d0a2e04”),该层的CMD为“CMD ["nginx" "-g" "daemon…””,即启动nginx服务;对于后面的各层,则是其它一些配置或命令。因此,我们可以大致猜测Docker镜像每一层的存储位置。

  1. 总结

通过上述命令,用户可以在Linux系统下查看本地存储的Docker镜像。Docker镜像的层以镜像ID为文件夹名存放在/var/lib/docker/image/overlay2/imagedb/content/sha256目录中。每一层分别存储在“real”或者“diff”文件中。

对于每一层镜像的存储位置,可以通过执行docker historyrrreee

Nach der Ausführung zeigt das Terminal eine Liste aller Dateien und Ordner im Verzeichnis /var/lib/docker/ an. Darunter ist der Ordner /var/lib/docker/image der Hauptspeicherort, an dem Docker Bilder speichert. Wie im Bild unten gezeigt:

Überprüfen Sie, wo das Docker-Image gezogen und platziert wird# 🎜🎜 ##🎜🎜#Im Verzeichnis /var/lib/docker/image/overlay2/imagedb/content/sha256 werden alle heruntergeladenen Docker-Images (benannt mit Image-ID) gespeichert, d. h. Speicherort aller Ebenen. In jedem Bild-ID-Verzeichnis gibt es eine Datei mit dem Namen „real“ oder „diff“, die den Speicherort dieser Ebene darstellt. #🎜🎜#
    #🎜🎜#Bestätigen Sie den Speicherort der Image-Ebene#🎜🎜##🎜🎜##🎜🎜#Für jede Ebene des Docker-Images kann ihr Speicherort ausgeführt werden durch Ausführen des folgenden Befehls Zur Bestätigung: #🎜🎜#rrreee#🎜🎜#Beispielsweise für das Nginx-Image führt die Ausführung des Befehls: #🎜🎜#rrreee#🎜🎜# zu den folgenden Ergebnissen: #🎜🎜#rrreee# 🎜🎜# Unter ihnen gibt das SIZE-Feld jeder Ebene den tatsächlich von der Ebene belegten Platz an. Die erste Spalte der Ausgabe dieses Befehls ist die ID jeder Ebene des Docker-Images, die jede Ebene des Bildes von oben nach unten darstellt. #🎜🎜##🎜🎜#Wir können den spezifischen Speicherort jeder Ebene anhand der Ausgabe dieses Befehls bestätigen. In der Ausgabe des obigen Befehls enthält die letzte Spalte beispielsweise die Beschreibungsinformationen der Ebene, einschließlich des ursprünglichen Befehls und der Parameter der Ebene. #🎜🎜##🎜🎜#Für die erste Ebene des Nginx-Images (ID ist „84cf8d0a2e04“) lautet der CMD dieser Ebene „CMD [„nginx“ „-g“ „daemon…“, was bedeutet Starten des Nginx-Dienstes; für Die folgenden Ebenen enthalten andere Konfigurationen oder Befehle. Daher können wir ungefähr erraten, wo jede Ebene des Docker-Images gespeichert ist. #🎜🎜#
      #🎜🎜#Zusammenfassung#🎜🎜##🎜🎜##🎜🎜#Mit dem obigen Befehl können Benutzer das lokal gespeicherte Docker-Image unter dem Linux-System anzeigen. Die Ebene des Docker-Images wird im Verzeichnis /var/lib/docker/image/overlay2/imagedb/content/sha256 mit der Image-ID als Ordnernamen gespeichert. Jede Ebene wird in einer „realen“ bzw. „diff“-Datei gespeichert. #🎜🎜##🎜🎜#Sie können den Speicherort jeder Bildebene anzeigen, indem Sie den Befehl Docker History ausführen und im Ausgabeergebnis ungefähr nach den Beschreibungsinformationen der Ebene suchen Erraten Sie den Speicherort der Ebene. #🎜🎜##🎜🎜#Bei der Verwendung von Docker-Images und -Containern kann das Verständnis des Speicherorts von Docker-Images den lokalen Speicherplatz besser verwalten sowie Docker-Images und -Container sichern und wiederherstellen. #🎜🎜#

Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, wo das Docker-Image gezogen und platziert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage