Maison > Article > Opération et maintenance > Vérifiez où l'image Docker est extraite et placée
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.
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 :
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.
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储存镜像的主要位置。如下图所示:
在/var/lib/docker/image/overlay2/imagedb/content/sha256
目录下,存储了所有已下载的Docker镜像(以镜像ID命名),即所有层的存储位置。在每个镜像ID目录下,都有一个名为“real”或者“diff”文件,代表该层的存储位置。
对于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镜像每一层的存储位置。
通过上述命令,用户可以在Linux系统下查看本地存储的Docker镜像。Docker镜像的层以镜像ID为文件夹名存放在/var/lib/docker/image/overlay2/imagedb/content/sha256
目录中。每一层分别存储在“real”或者“diff”文件中。
对于每一层镜像的存储位置,可以通过执行docker history
rrreee
/var/lib/docker/image
est l'emplacement principal où Docker stocke les images. Comme le montre l'image ci-dessous :
🎜🎜 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. 🎜/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!