Maison >Opération et maintenance >Docker >Dans quel répertoire l'image compilée par docker est-elle placée ?

Dans quel répertoire l'image compilée par docker est-elle placée ?

青灯夜游
青灯夜游original
2022-05-11 12:14:2818734parcourir

L'image est placée dans le répertoire racine du docker. Le contenu de la couche image est généralement dans le chemin aufs du répertoire Docker, l'adresse spécifique est "/var/lib/docker/aufs/" pour chaque couche image, un fichier json correspondant sera enregistré, le chemin est " ; /var/lib/docker /graph".

Dans quel répertoire l'image compilée par docker est-elle placée ?

L'environnement d'exploitation de ce tutoriel : système Ubuntu 14.04, version docker-1.7.1, ordinateur Dell G3.

Contenu de l'image Docker


Il y aura toujours une première fois pour comprendre l'image Docker. Depuis, bien sûr, il y a eu une croissance, autant partager avec vous mon propre processus de compréhension :

  • . Premier contact avec Docker : Je pense que de nombreux passionnés auront la même compréhension que moi : l'image Docker représente le contenu du système de fichiers d'un conteneur

  • Contact initial avec le système de fichiers commun : Le concept de joint ; Le système de fichiers m'a fait réaliser la technologie de gestion des couches d'images, chaque couche d'image fait partie du contenu du système de fichiers du conteneur.

  • Étudiez la relation entre les images et les conteneurs : Les conteneurs sont un environnement dynamique et les fichiers de chaque couche d'images sont du contenu statique. Cependant, l'ENV, le VOLUME, le CMD et les autres contenus du Dockerfile doivent finalement l'être. implémenté dans le fonctionnement de l'environnement conteneur, et ces contenus ne peuvent pas être directement localisés dans le contenu du système de fichiers contenu dans chaque couche de l'image, alors comment Docker gère-t-il cette partie du contenu ?

De plus, dans la troisième étape ci-dessus, il existe une autre situation que je pense que tout le monde connaît. La taille de nombreux calques d'image est de 0 et il n'y a aucun contenu de fichier à l'intérieur du calque d'image. Que se passe-t-il?

Vous vous souvenez que dans « Docker Image Detail Discussion (1) : Container File System », à propos de la génération d'images vides, il mentionnait « la mise à jour du fichier json de l'image ». En fait, la préfiguration présentée dans l'article précédent fait allusion à la vérité : le contenu de l'image Docker se compose du contenu du fichier de couche image et du fichier image json. Indépendamment du contenu statique ou des informations dynamiques, Docker le met à jour dans le fichier json.

Le fichier json de chaque couche de l'image Docker joue un rôle très important. Ses principales fonctions sont les suivantes :

  • Enregistrer le contenu lié aux informations dynamiques du conteneur dans l'image Docker

  • . Enregistrer père et fils La vraie différence de relation entre les images Docker

  • compense l'exhaustivité du contenu de l'image Docker et le manque de contenu dynamique

Le fichier json de l'image Docker peut être considéré comme le les informations de métadonnées de l'image, et son importance ne peut être surestimée.

Emplacement de stockage des images Docker


L'analyse théorique du contenu de l'image Docker semble quelque peu floue. Quel que soit le fichier de couche d'image Docker ou le fichier json, c'est un peu ennuyeux à lire. Si vous pouvez avoir un aperçu de l'environnement réel dans Docker, je pense que cela vous sera d'une grande aide pour votre compréhension de la technologie de mise en miroir.

Allons directement au sujet, en commençant par le stockage des images Docker, et voyons où est stocké le contenu de ces fichiers de couches d'images et les fichiers d'images json. (L'environnement expérimental présenté ci-dessous : le système d'exploitation hôte est Ubuntu 14.04, la version Docker est 1.7.1, le type de pilote graphique est aufs et ne contient qu'une image d'ubuntu : 14.04.)

Affichez la composition de la couche d'image

Nous pouvons exécuter la commande docker history ubuntu:14.04 pour afficher ubuntu:14.04. Les résultats sont les suivants :

Dans quel répertoire limage compilée par docker est-elle placée ?

L'image montre que l'image ubuntu:14.04 comporte 4 couches d'image.

Stockage du contenu du fichier de la couche image

Le contenu de la couche d'image Docker se trouve généralement sous le chemin aufs du répertoire racine de Docker, qui est /var/lib/docker/aufs/. comme suit :

Dans quel répertoire limage compilée par docker est-elle placée ?

La figure montre le contenu des quatre couches d'image de l'image ubuntu:14.04, ainsi que les répertoires de premier niveau au sein de chaque couche d'image. Une remarque supplémentaire est qu'il n'y a rien dans la couche d'image d2a0ecffe6fa.

Stockage du fichier image json

Pour chaque couche d'image, Docker enregistrera un fichier json correspondant. Le chemin de stockage du fichier json est /var/lib/docker/graph, ubuntu:14.04 toutes les couches d'image. Le chemin de stockage du fichier json est indiqué ci-dessous :

Dans quel répertoire limage compilée par docker est-elle placée ?

En plus du fichier json, vous pouvez également voir que chaque calque d'image contient également un fichier de taille de calque, qui enregistre principalement la taille totale du contenu du fichier à l'intérieur du calque d'image. Maintenant que nous avons parlé du fichier image json, afin d'ouvrir la voie à ce qui suit, le fichier json de la couche d'image creuse ubuntu:14.04 d2a0ecffe6fa est posté ci-dessous :

Dans quel répertoire limage compilée par docker est-elle placée ?

Depuis la commande Dockerfile correspondante de ce la couche d'image est CMD, le contenu de la couche d'image est vide et la modification du fichier json de la couche d'image mettra à jour le champ Cmd et obtiendra la nouvelle valeur Cmd, de sorte que la Cmd mise à jour puisse être utilisée lorsque le conteneur est ensuite exécuté l'image.

Apprentissage recommandé : "Tutoriel vidéo 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