labos-cloud

Laboratoires pour diverses technologies utilisées dans le cloud

View on GitHub

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.

docker run debian

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.

ls /home

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, ) donc nous avons créé 4 containers en tout. Sortez du container avec `exit`.

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.

docker container ls -a

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.

Poursuivre avec l’exercice 2