Maison >Opération et maintenance >Docker >Quelle est l'isolation par laquelle les conteneurs Docker sont isolés ?

Quelle est l'isolation par laquelle les conteneurs Docker sont isolés ?

WBOY
WBOYoriginal
2022-08-15 16:42:064694parcourir

Les conteneurs Docker réalisent l'isolation grâce à l'espace de noms de la technologie du noyau Linux ; le mécanisme "Linux Namespaces" fournit une solution d'isolation des ressources. Les ressources sous chaque espace de noms sont transparentes et invisibles pour les ressources sous d'autres espaces de noms, donc dans le système d'exploitation au même niveau. , il y aura plusieurs processus avec le même pid.

Quelle est l'isolation par laquelle les conteneurs Docker sont isolés ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, docker version 19.03, ordinateur Dell G3.

Qu'est-ce que l'isolation des conteneurs Docker ?

Docker utilise principalement la technologie du noyau Linux Namespace pour réaliser l'isolation. Le mécanisme Linux Namespaces fournit une solution d'isolation des ressources.

PID, IPC, Réseau et autres ressources système ne sont plus globales, mais appartiennent à un espace de noms spécifique. Les ressources sous chaque espace de noms sont transparentes et invisibles pour les ressources sous d'autres espaces de noms. Par conséquent, au niveau du système d’exploitation, il y aura plusieurs processus avec le même pid. Il peut y avoir deux processus portant les numéros de processus 0, 1 et 2 dans le système en même temps, puisqu'ils appartiennent à des espaces de noms différents, il n'y a aucun conflit entre eux. Au niveau de l'utilisateur, seules les ressources appartenant au propre espace de noms de l'utilisateur peuvent être vues. Par exemple, l'utilisation de la commande ps ne peut répertorier que les processus sous le propre espace de noms de l'utilisateur. De cette façon, chaque espace de noms ressemble à un système Linux distinct.

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

L'exemple est le suivant : Isolation du processus

Démarrer un conteneur

docker run -it -p 8080:8080 --name pai-sn pai-sn:snapshot /bin/bash

-it démarrage interactif, -p mappage de port, –name Le nom du conteneur est suivi du nom de l'image, ouvrez le shell , et entrez dans le conteneur après le démarrage

Afficher le processus

ps -ef

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

Utilisez la commande top pour afficher les ressources du processus

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

Affichez le processus du conteneur en cours d'exécution sur la machine hôte ps -ef|grep pai-sn

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

De là, nous pouvons savoir que la commande docker run ne démarre qu'un seul processus et son pid est 4677. Quant au programme conteneur lui-même, il est isolé et seuls ses propres processus internes sont visibles à l'intérieur du conteneur. Docker est implémenté à l'aide de la technologie Namespace du noyau Linux.

Isolement des fichiers

Exécutez la commande ls dans le répertoire racine à l'intérieur du conteneur

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

Le conteneur contient déjà ces dossiers

L'hôte exécute les informations du docker. Jetons un coup d'œil au système de fichiers utilisé par. notre Docker. Quoi

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

La version de Docker est 20.10.6 et le pilote de stockage est overlay2. Différents pilotes de stockage se comportent différemment dans Docker, mais les principes sont similaires.

Le système de fichiers Docker est monté via mount. Exécutez docker ps command instance id

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

Exécutez docker inspect containers_id | grep Mounts -A 20 pour trouver le répertoire monté sur la machine hôte et afficher la liste des répertoires

Quelle est lisolation par laquelle les conteneurs Docker sont isolés ?

Constatant que cela est cohérent avec le répertoire de notre conteneur, nous créons un nouveau répertoire sous ce répertoire, puis voyons si un nouveau répertoire apparaîtra à l'intérieur du conteneur. En fait, l'isolation des fichiers et l'isolation des ressources sont toutes effectuées via le montage dans le nouvel espace de noms.

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