Notes pratiques Docker 1-Basics

Veuillez indiquer la source de la réimpression : http://blog.csdn.net/zhaoyanjun6/article/details/130181636
Cet article provient du [blog de Zhao Yanjun]

site officiel

https://www.docker.com/

Télécharger et installer

Téléchargez le logiciel de la plate-forme correspondante et installez-le

insérez la description de l'image ici

Installer

Installez la description donnée par le logiciel et exécutez les commandes dans l'ordre
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Image Docker

L'image est utilisée dans Docker pour représenter une image miroir. Chaque conteneur est une image miroir

image miroir

Nous savons tous que le système d'exploitation est divisé en 内核et 用户空间. Pour Linux, après le démarrage du noyau, le système de fichiers racine sera monté pour fournir une prise en charge de l'espace utilisateur. Cependant Docker 镜像(Image), il équivaut à un système de fichiers racine. Par exemple, l' ubuntu:18.04image contient un Ubuntu 18.04ensemble complet du système de fichiers racine du système minimal.

Une image Docker est un système de fichiers spécial. En plus de fournir les programmes, les bibliothèques, les ressources, la configuration et d'autres fichiers requis par l'exécution du conteneur, elle contient également certains paramètres de configuration préparés pour l'exécution (tels que des volumes anonymes, des variables d'environnement, des utilisateurs, etc). Les images ne contiennent aucune donnée dynamique et leur contenu n'est pas modifié après leur création.

Stockage hiérarchique

Parce que l'image contient le système de fichiers racine complet du système d'exploitation, son volume est souvent énorme, donc lors de la conception de Docker, il tire pleinement parti de la technologie et la conçoit comme une architecture de stockage hiérarchique. À proprement parler, une image n'est pas un fichier empaqueté comme une ISO. Une image n'est qu'un concept virtuel. Son incarnation réelle n'est pas composée d'un fichier, mais d'un groupe de systèmes de fichiers, ou en d'autres termes, d'une combinaison de plusieurs couches systèmes de fichiers composition.

Lorsque l'image est construite, elle sera construite couche par couche, et la couche précédente est la base de la couche suivante. Une fois chaque calque créé, il ne changera plus et tout changement sur le calque suivant ne se produira que sur son propre calque.

Par exemple, l'opération de suppression d'un fichier dans la couche précédente ne supprime pas réellement le fichier dans la couche précédente, mais marque uniquement le fichier comme supprimé dans la couche actuelle. Lorsque le conteneur final est en cours d'exécution, bien que ce fichier ne soit pas visible, en fait, le fichier suivra toujours l'image. Par conséquent, lors de la construction d'une image, vous devez faire très attention. Chaque calque ne doit contenir que ce qui doit être ajouté à ce calque, et tout élément supplémentaire doit être nettoyé avant la fin de la construction du calque.

La fonctionnalité de stockage hiérarchique facilite également la réutilisation et la personnalisation des images. Vous pouvez même utiliser l'image précédemment créée comme calque de base, puis ajouter de nouveaux calques pour personnaliser ce dont vous avez besoin et créer une nouvelle image.

récipient

La relation entre miroir ( Image) et conteneur ( Container) est similaire à et 实例. Miroir est une définition statique et conteneur est une entité lorsque la mise en miroir est en cours d'exécution. Les conteneurs peuvent être créés, démarrés, arrêtés, supprimés, mis en pause, etc.

L'essence d'un conteneur est un processus, mais contrairement à un processus directement exécuté sur l'hôte, un processus de conteneur s'exécute dans son propre espace de noms indépendant. Ainsi, un conteneur peut avoir son propre système de fichiers racine, sa propre configuration réseau, son propre espace de processus et même son propre espace d'ID utilisateur. Le processus du conteneur s'exécute dans un environnement isolé et, lorsqu'il est utilisé, il semble fonctionner sous un système indépendant de l'hôte. Cette fonctionnalité rend les applications encapsulées dans des conteneurs plus sécurisées que celles exécutées directement sur l'hôte. De plus, en raison de cette fonctionnalité d'isolation, de nombreuses personnes confondent souvent les conteneurs et les machines virtuelles lorsqu'elles apprennent Docker pour la première fois.

Comme mentionné précédemment, les images utilisent un stockage hiérarchique, tout comme les conteneurs. Lorsque chaque conteneur s'exécute, l'image est utilisée comme couche de base et une couche de stockage pour le conteneur actuel est créée dessus. Nous pouvons appeler cette couche de stockage préparée pour l'exécution du conteneur read and write 容器存储层.

Le cycle de vie de la couche de stockage du conteneur est le même que celui du conteneur. Lorsque le conteneur meurt, la couche de stockage du conteneur meurt également. Par conséquent, toute information stockée dans la couche de stockage du conteneur sera perdue lors de la suppression du conteneur.

Selon les meilleures pratiques de Docker, les conteneurs ne doivent pas écrire de données dans leur couche de stockage, et la couche de stockage des conteneurs doit rester sans état. Toutes les opérations d'écriture de fichiers doivent utiliser 数据卷(Volume), ou 绑定宿主目录lire et écrire dans ces emplacements ignoreront la couche de stockage du conteneur et liront et écriront directement sur l'hôte (ou le stockage réseau), qui offre des performances et une stabilité supérieures.

Le cycle de vie du volume de données est indépendant du conteneur. Lorsque le conteneur meurt, le volume de données ne mourra pas. Par conséquent, après avoir utilisé le volume de données, les données ne seront pas perdues après la suppression ou le redémarrage du conteneur.

Commandes courantes

info docker

Afficher les informations sur le menu fixe

insérez la description de l'image ici

images de docker

insérez la description de l'image ici

version docker

insérez la description de l'image ici

docker ps : Afficher les conteneurs

docker ps ne peut voir que les conteneurs en cours d'exécution, pas les conteneurs en cours d'exécution
insérez la description de l'image ici

docker ps-a

Afficher tous les conteneurs de statut

Voir quels fichiers se trouvent dans le répertoire racine du conteneur

docker exec 容器id ls -a /

insérez la description de l'image ici

Afficher un répertoire du conteneur

Par exemple, nous voulons voir quels fichiers se trouvent usrdans le répertoire

Format de commande :

docker exec 容器id ls 容器目录

Exemple : afficher les fichiers dans le usrrépertoire

docker exec 9a5dd57529c9 ls /usr

Charger des fichiers locaux dans le conteneur

format de commande

docker cp 文件 容器id:容器目录

Exemple : Télécharger des images de bureau IMG_0423.jpegdans usrle répertoire du conteneur

docker cp /Users/zhaoyj/Desktop/IMG_0423.jpeg 9a5dd57529c9:usr

Supprimer les fichiers dans le répertoire du conteneur

Format de commande :

docker exec conteneur id rm chemin du fichier

Exemple : supprimer usrle répertoireIMG_0423.jpeg

docker exec 9a5dd57529c9 rm /usr/IMG_0423.jpeg

copier le fichier conteneur en local

format de commande

docker cp CONTAINER:SRC_PATH DEST_PATH

Exemple : copier le répertoire usr du conteneur test.pngdans le dossier du bureau local

docker cp 9a5dd57529c9:usr/test.png /Users/smile/Desktop/

supprimer le conteneur

Format de commande :

docker rm CONTAINER_ID

supprimer le miroir

Format de commande :

docker rmi IMAGE_ID

Avis:删除镜像之前,需要先把对应的容器删掉,否则会报错

insérez la description de l'image ici

Tirez la première image

Docker nous fournit officiellement une image hello-world sur https://hub.docker.com/

adresse hello-world : https://hub.docker.com/_/hello-world

insérez la description de l'image ici
Nous essayons d'abattre le local

Commande

docker pull hello-world

insérez la description de l'image ici

miroir

Commande

docker images

insérez la description de l'image ici
L'image peut également être vue sur le client docker de mac

insérez la description de l'image ici

exécuter la première image

Commande

docker run hello-world

insérez la description de l'image ici

diagramme d'architecture docker

insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/zhaoyanjun6/article/details/130181636
conseillé
Classement