Maison  >  Article  >  Opération et maintenance  >  Vérifiez où l'image Docker est extraite et placée

Vérifiez où l'image Docker est extraite et placée

PHPz
PHPzoriginal
2023-05-13 18:41:375785parcourir

Docker est une technologie de conteneur open source qui peut être utilisée pour créer, publier et exécuter des applications. En utilisant les images Docker, les utilisateurs peuvent télécharger et installer des applications prédéfinies ou des environnements de conteneurs simplement et rapidement.

Les images Docker sont composées de plusieurs couches (Layer) et chaque couche contient un instantané du système de fichiers. Lorsqu'un utilisateur extrait une image Docker, il obtient en fait toutes les couches de l'image à partir du registre Docker et les combine pour créer une image Docker complète.

Alors, où se trouve l'emplacement de stockage local de l'image Docker ? Cet article vous le présentera en détail.

  1. Afficher la liste d'images Docker

Tout d'abord, nous devons afficher la liste d'images Docker locale actuelle. Entrez la commande suivante dans le terminal :

docker images

Après l'exécution, une liste de toutes les images Docker sur la machine sera répertoriée, y compris l'ID de l'image, le nom de l'image, l'étiquette de l'image, la taille de l'image et d'autres informations. Comme le montre l'image ci-dessous :

Docker images

Comme vous pouvez le voir sur l'image ci-dessus, chaque image a un identifiant unique, un nom et quelques balises (également appelées versions). Parmi eux, le champ REPOSITORY représente le nom de l'image, le champ TAG représente l'étiquette de l'image et le champ IMAGE ID est l'identifiant unique de l'image.

  1. Afficher l'emplacement de stockage des images Docker

Dans Docker, chaque image est composée de plusieurs calques (Layer). Par conséquent, lorsqu'un utilisateur télécharge ou crée une image Docker, toutes les couches de l'image sont en fait téléchargées sur le stockage local.

Dans les systèmes Linux, les images Docker sont en fait stockées dans le répertoire /var/lib/docker. Entrez la commande suivante dans le terminal : /var/lib/docker目录下的。在终端输入下面命令:

sudo ls -l /var/lib/docker/

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

Vérifiez où limage Docker est extraite et placée

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

  1. 确认镜像层存储位置

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

docker history <image_name>:<tag>

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

docker history nginx:latest

将会输出以下结果:

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

其中,每一层的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

Après l'exécution, le terminal affichera une liste de tous les fichiers et dossiers du répertoire /var/lib/docker/. Parmi eux, le dossier /var/lib/docker/image est l'emplacement principal où Docker stocke les images. Comme le montre l'image ci-dessous :

Emplacement de stockage Docker🎜🎜 dans / var/ Toutes les images Docker téléchargées (nommées avec des ID d'image) sont stockées dans le répertoire lib/docker/image/overlay2/imagedb/content/sha256, qui est l'emplacement de stockage de toutes les couches. Dans chaque répertoire ID d'image, il existe un fichier nommé "real" ou "diff", qui représente l'emplacement de stockage de cette couche. 🎜
    🎜Confirmez l'emplacement de stockage de la couche d'image🎜🎜🎜Pour chaque couche de l'image Docker, son emplacement de stockage peut être confirmé en exécutant la commande suivante : 🎜rrreee🎜Par exemple, pour l'image nginx, exécutez la commande : 🎜rrreee🎜 affichera les résultats suivants : 🎜rrreee🎜 Parmi eux, le champ SIZE de chaque calque représente l'espace réel occupé par le calque. La première colonne du résultat de cette commande est l'ID de chaque couche de l'image Docker, représentant chaque couche de l'image de haut en bas. 🎜🎜Nous pouvons confirmer l'emplacement de stockage spécifique de chaque couche en fonction du résultat de cette commande. Par exemple, dans le résultat de la commande ci-dessus, la dernière colonne contient les informations de description de la couche, qui incluent la commande et les paramètres d'origine de la couche. 🎜🎜Pour la première couche de l'image nginx (ID est "84cf8d0a2e04"), le CMD de cette couche est "CMD ["nginx" "-g" "daemon..."", ce qui signifie démarrer le service nginx pour ; les couches suivantes, puis une autre configuration ou commande. Par conséquent, nous pouvons approximativement deviner où chaque couche de l’image Docker est stockée. 🎜
      🎜Résumé🎜🎜🎜Avec la commande ci-dessus, les utilisateurs peuvent afficher l'image Docker stockée localement sous le système Linux. La couche de l'image Docker est stockée dans le répertoire /var/lib/docker/image/overlay2/imagedb/content/sha256 avec l'ID de l'image comme nom de dossier. Chaque couche est stockée respectivement dans un fichier "réel" ou "diff". 🎜🎜Pour l'emplacement de stockage de chaque couche d'image, vous pouvez la visualiser en exécutant la commande docker history, et rechercher les informations de description de la couche dans le résultat de sortie, afin de deviner approximativement le emplacement de stockage de la couche. 🎜🎜Lors de l'utilisation d'images et de conteneurs Docker, comprendre l'emplacement de stockage des images Docker permet de mieux gérer l'espace de stockage local, ainsi que de sauvegarder et de restaurer les images et les conteneurs Docker. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:échec du démarrage du dockerArticle suivant:échec du démarrage du docker