Maison  >  Article  >  Opération et maintenance  >  Que fait chroot dans Docker ?

Que fait chroot dans Docker ?

WBOY
WBOYoriginal
2022-02-07 11:13:383220parcourir

Dans Docker, chroot est une opération dans les systèmes Unix et Linux. Elle modifie le répertoire racine apparent d'un processus logiciel en cours d'exécution et de ses sous-processus. Il peut modifier le répertoire racine d'un processus afin que le programme ne puisse pas y accéder. autre que le répertoire.

Que fait chroot dans Docker ?

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

Que fait chroot dans docker ?

chroot

La technologie des conteneurs a émergé depuis le premier avènement de chroot en 1979.

Wikipédia définit le chroot comme suit :

est une opération dans les systèmes Unix et Linux pour modifier le répertoire racine apparent d'un processus logiciel en cours d'exécution et de ses processus enfants. Un programme exécuté dans cet environnement et définissant le répertoire racine via chroot ne peut pas accéder aux fichiers en dehors du répertoire racine spécifié, ne peut pas les lire et ne peut pas modifier son contenu.

En termes simples, chroot peut changer le répertoire racine d'un processus afin que le programme ne puisse pas accéder à d'autres répertoires en dehors du répertoire. C'est très similaire à ce que nous faisons dans un conteneur. Ci-dessous, nous utilisons un exemple pour démontrer le chroot.

Description de l'exemple chroot :

1), mkdir rootfs

#Créez un répertoire nommé : rootfs dans le répertoire courant

2), cd rootfs

#Entrez le répertoire nommé : rootfs

3) , docker export $ (docker create docker101tutorial) -o docker101tutorial.tar

#Exportez le système de fichiers du conteneur nommé : docker101tutorial en tant que fichier d'archive docker101tutorial.tar vers docker101tutorial.tar et enregistrez-le

#Cela peut aussi être simplement compris comme dans Création de certains répertoires et placé quelques fichiers binaires sous rootfs

4), tar -xf docker101tutorial.tar

#Extraire le contenu du fichier docker101tutorial.tar

5), ls

#Afficher le contenu du fichier dans le répertoire rootfs actuel

6), chroot /Users/xiaoqin.wu/rootfs /bin/sh

#Démarrez un processus sh et utilisez /Users/xiaoqin.wu/rootfs comme répertoire racine du processus sh

Que fait chroot dans Docker ?

Que fait chroot dans Docker ?

Comparaison Dans la figure ci-dessus, le résultat de la commande 5 : ls pour afficher le contenu du fichier dans le répertoire /Users/xiaoqin.wu/rootfs est cohérent avec le résultat de l'utilisation de la commande 7 : ls pour afficher le processus en cours dans le processus sh À ce stade, cela montre que l'utilisation de chroot réalise le processus actuel et que l'isolation de l'hôte et un conteneur isolé par répertoire sont terminés, mais il ne peut pas encore être appelé un conteneur.

Les raisons sont les suivantes :

Utilisez la commande 8 : netstat -nr pour afficher les informations de routage

Que fait chroot dans Docker ?

Il ressort des résultats que les informations sur le réseau ne sont pas isolées. En fait, le processus et d'autres informations le sont. pas isolé pour le moment. Pour réaliser un conteneur complet, il faut mettre en œuvre trois autres technologies Linux, à savoir :

Namespace

Cgroup

United File System

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