Maison >Opération et maintenance >Docker >Quelle est l'isolation par laquelle les conteneurs Docker sont isolés ?
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.
L'environnement d'exploitation de ce tutoriel : système linux7.3, docker version 19.03, ordinateur Dell G3.
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.
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
Utilisez la commande top pour afficher les ressources du processus
Affichez le processus du conteneur en cours d'exécution sur la machine hôte ps -ef|grep pai-sn
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
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
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
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
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!