Exercice 1
Premier pas
Exécutez sudo docker --help
La commande sudo docker run hello-world
que vous avez testé précédemment sert à exécuter une commande dans un nouveau container.
Exécutez sudo docker run debian
Cette commande, run
, vérifie si l’image est disponible localement et la télécharge au besoin. Un nouveau container est créé puis lancé mais dans ce cas-ci nous n’avons pas vu de signe d’exécution contrairement au hello-world. C’est normal, un container s’arrête lorsqu’il n’y a plus de processus en exécution.
Pour vérifier que l’image debian est bien disponible localement, sudo docker images
. Pour référer une image lors de l’exécution de commandes, on peut utiliser le IMAGE ID ou le REPOSITORY + TAG. Comme nous n’avons pas de commande pour l’instant, nous allons exécuter le container en mode interactif avec un pseudo-terminal, ce qui va nous placer dans le container.
Intro système de fichiers
Exécutez sudo docker run --help
Les options nécessaires pour le mode interactif et le tty sont -t et -i que nous combinerons ainsi: sudo docker run -ti debian:latest
. Pour vérifier la version: cat /etc/*-release
. Explorez le système de fichier : ls
, ls /bin
et ls /sbin
, ls /usr/bin
et ls /usr/sbin
contiennent des utilitaires de base pour un contexte Debian. Les autres fichiers présents sont également minimaux, comme dans /etc, /dev et /var. Créez un nouveau fichier touch /home/test1
puis ls /home
pour vérifier. Sortez du container avec exit
puis vérifier le contenu, ls /home
sur votre système hôte. Avec Docker, les systèmes de fichiers sont isolés: un changement dans le container existe seulement dans le container.
Exécutez sudo docker run -ti <IMAGE ID>
avec l’ID associé à debian latest. Allons voir le contenu du répertoire modifié à la dernière étape avec ls /home
. Le fichier test1 est absent car la commande run
crée un nouveau container à partir de l’image. Nous avons exécuté run
quatre fois (hello-world, debian, debian:latest,
Exécutez sudo docker container
. Pour lister les containers, nous devons utiliser sudo docker container ls
. Cette commande retourne une liste des containers, vide si vous avez suivi les instructions jusqu’à maintenant. sudo docker container ls --help
nous informe que la commande ne liste que les containers en exécution par défaut, il faut utiliser l’option -a
pour avoir la liste complète. Remarquez sous IMAGE la correspondance avec les commandes données à docker run préalablement. Sous COMMAND, bien que nous n’ayons rien spécifié lors du run, un shell bash était en cours d’exécution pour le pseudo-terminal. La colonne NAMES contient un nom généré automatiquement, plus simple à mémoriser que le CONTAINER ID.
Pour enlever un container individuellement, sudo docker container rm --help
, mais nous enleverons plutôt tous les container arrêtés avec sudo docker container prune
.