Dans Docker, image signifie « miroir » et est un système de fichiers ; l'image peut monter plusieurs couches de répertoires ensemble pour former un système de fichiers virtuel avec la même structure de répertoires que Linux utilise ces fichiers plus l'hôte. Le noyau de l'hôte fournit un. Environnement virtuel Linux.
L'environnement d'exploitation de ce tutoriel : système linux7.3, version docker-1.13.1, ordinateur Dell G3.
Que signifie l'image dans Docker ?
image Il y a des couches de systèmes de fichiers à l'intérieur, appelées Union FS (Union File System).
Le système de fichiers United peut monter plusieurs couches de répertoires ensemble pour former un système de fichiers virtuel. La structure de répertoires du système de fichiers virtuel est similaire à la structure de répertoires de Linux ordinaire. Docker fournit un environnement virtuel Linux via ces fichiers et le noyau de l'hôte.
Chaque couche du système de fichiers est appelée une couche. Le système de fichiers commun peut définir trois autorisations pour chaque couche du système de fichiers, en lecture seule (lecture seule), en lecture-écriture (lecture-écriture) et en écriture (capable de masquer), mais docker Chaque couche du système de fichiers dans l'image est en lecture seule.
Lors de la construction d'une image, nous partons du système d'exploitation le plus basique. Chaque opération de construction équivaut à effectuer une couche de modifications et à ajouter une couche de système de fichiers. Couche par couche, les modifications apportées à la couche supérieure couvriront la visibilité de la couche inférieure. C'est facile à comprendre, tout comme la couche supérieure recouvre la couche inférieure.
Lorsque vous l'utilisez, vous ne verrez qu'un tout complet. Vous ne savez pas combien de couches il y a, et vous ne savez pas quelles sont les modifications apportées à chaque couche. La structure est similaire à celle-ci :
D'un point de vue fondamental, un système de fichiers Linux typique se compose de deux parties : bootfs et rootfs (système de fichiers de démarrage) comprend principalement le chargeur de démarrage et le noyau est principalement utilisé pour. démarrez et chargez le noyau. Une fois le noyau chargé en mémoire, bootfs sera démonté.
rootfs (système de fichiers racine) contient des répertoires et des fichiers standard tels que /dev, /proc, /bin, /etc, etc. dans un système Linux typique. La figure suivante montre la structure à deux couches la plus élémentaire dans l'image Docker. Différentes distributions Linux (telles que Ubuntu et CentOS) auront des différences dans la couche rootfs, reflétant les différences entre les versions de distribution.
Lorsque Linux traditionnel charge bootfs, il définira d'abord rootfs en lecture seule, puis changera rootfs de lecture seule en lecture-écriture après l'auto-test du système, puis nous pourrons effectuer des opérations de lecture et d'écriture sur rootfs. .
Mais Docker ne modifiera pas la lecture seule de rootfs en lecture-écriture une fois l'auto-test de bootfs terminé, il utilisera plutôt union mount (un mécanisme de montage d'UnionFS) pour charger d'autres couches de l'image dans la précédente. Au-dessus de la couche rootfs en lecture seule, chaque couche est une structure rootfs et est en lecture seule. On ne peut donc pas modifier le calque dans une image existante !
Seulement lorsque nous créons un conteneur, c'est-à-dire instancions l'image Docker, le système allouera un rootfs vide en lecture-écriture pour enregistrer les modifications que nous apportons. Les modifications enregistrées par une couche sont incrémentielles, tout comme git.
Pour résumer, l'image est en fait un système de fichiers qui, avec le noyau de l'hôte, fournit un environnement Linux virtuel pour le programme. Lors du démarrage d'un conteneur Docker, Docker créera un environnement Linux virtuel pour le conteneur en fonction de 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!