Contactez-nous

Exemple 3 : Explorer un système de fichiers Linux (ex: Alpine) via un conteneur

Utilisez Docker pour lancer un conteneur interactif Alpine Linux et explorez son système de fichiers. Apprenez à naviguer et inspecter un environnement Linux minimaliste.

Entrer dans un conteneur pour explorer son monde

Une autre utilisation très instructive de Docker est de lancer un conteneur de manière interactive pour explorer son environnement interne, notamment son système de fichiers. Cela permet de comprendre ce qui constitue une image Docker donnée, de tester des commandes Linux dans un environnement sûr et isolé, ou simplement de se familiariser avec une distribution spécifique sans avoir à l'installer.

Pour cet exemple, nous allons utiliser l'image `alpine`. Alpine Linux est une distribution Linux extrêmement légère (l'image Docker de base pèse environ 5 Mo !) et sécurisée, très souvent utilisée comme image de base pour construire d'autres images Docker plus complexes afin de minimiser leur taille.

L'objectif est de démarrer un conteneur Alpine, d'obtenir un shell (une invite de commande) à l'intérieur, et de pouvoir y exécuter des commandes Linux standard pour naviguer et inspecter son contenu.

Lancer un shell interactif dans Alpine

Pour obtenir un shell interactif à l'intérieur d'un nouveau conteneur Alpine, nous allons utiliser une commande similaire à celle de l'exemple précédent, en spécifiant la commande que nous voulons exécuter à l'intérieur du conteneur : `sh` (le shell par défaut d'Alpine, appelé "Ash").

docker run -it --rm alpine sh

Décortiquons à nouveau :

  • `docker run` : Crée et démarre un nouveau conteneur.
  • `-it` : Options interactives (`-i` et `-t`) pour pouvoir interagir avec le shell à l'intérieur du conteneur.
  • `--rm` : Supprime automatiquement le conteneur lorsque nous quitterons le shell.
  • `alpine` : L'image Docker à utiliser. Elle sera téléchargée si absente localement.
  • `sh` : La commande à exécuter une fois le conteneur démarré. Au lieu de laisser Docker exécuter la commande par défaut de l'image (qui, pour Alpine, ne fait souvent rien et arrête le conteneur immédiatement), nous lui demandons explicitement de lancer un shell.

Après avoir exécuté cette commande, votre invite de commande devrait changer pour quelque chose comme `/ #`. Le `#` indique que vous êtes connecté en tant qu'utilisateur `root` (l'utilisateur par défaut dans beaucoup d'images Docker, y compris Alpine), et le `/` indique que vous êtes dans le répertoire racine du système de fichiers à l'intérieur du conteneur.

Explorer l'environnement du conteneur

Vous êtes maintenant libre d'exécuter des commandes Linux standard pour explorer cet environnement minimaliste. Essayez quelques commandes :

  • `pwd` : Affiche le répertoire courant (devrait être `/`).
  • `ls` : Liste le contenu du répertoire courant. Vous verrez les répertoires Linux typiques (`bin`, `etc`, `home`, `lib`, `usr`, `var`, etc.), mais souvent avec moins de contenu que dans une distribution plus complète comme Ubuntu ou Debian.
  • `ls /bin` : Liste les exécutables disponibles dans `/bin`. Remarquez la taille réduite de l'ensemble d'outils par rapport à une distribution standard (Alpine utilise BusyBox pour fournir de nombreuses commandes courantes dans un seul binaire).
  • `cd /etc` : Changez de répertoire pour aller dans `/etc` (configurations).
  • `ls` : Listez le contenu de `/etc`.
  • `cat os-release` : Affiche les informations sur la distribution Linux (vous devriez voir des détails sur Alpine Linux).
  • `ps aux` : Affiche les processus en cours d'exécution à l'intérieur du conteneur. Vous verrez probablement très peu de processus : votre shell (`sh`) et la commande `ps` elle-même. C'est une illustration de l'isolation des processus.

N'hésitez pas à explorer d'autres répertoires et à tester d'autres commandes Linux de base. C'est un excellent moyen d'apprendre sans risque, car toutes vos actions sont confinées au conteneur.

Pour quitter le shell interactif et donc arrêter (et supprimer, grâce à `--rm`) le conteneur, tapez simplement la commande :

exit

Vous reviendrez à l'invite de commande de votre machine hôte. Cet exercice vous a permis de "pénétrer" dans un conteneur et de voir directement à quoi ressemble l'environnement isolé qu'il fournit, basé sur une image Docker spécifique.