Container’s layer

La layer d’un container, est la layer read-write créé lorsqu’un container est lancé. C’est la layer dans laquelle tous les changements effectués dans le container sont sauvegardés. Cette layer est supprimée avec le container et ne doit donc pas être utilisée comme un stockage persistant.

Lancement d’un container

Utilisez la commande suivante pour lancer un shell intéractif dans un container basé sur l’image ubuntu:18.04.

docker container run -ti ubuntu:18.04

Installation d’un package

figlet est un package qui prend un texte en entrée et le formatte de façon amusante. Par défaut ce package n’est pas disponible dans l’image ubuntu. Vérifiez le avec la commande suivante:

figlet

La commande devrait donner le résultat suivant.

bash: figlet: command not found

Installez le package figlet avec la commande suivante:

apt-get update -y
apt-get install figlet

Vérifiez que le binaire fonctionne

figlet Hola

Ce qui devrait donner le résultat suivant

_   _       _
| | | | ___ | | __ _
| |_| |/ _ \| |/ _` |
|  _  | (_) | | (_| |
|_| |_|\___/|_|\__,_|

Sortez du container.

exit

Lancement d’un nouveau container

Lancez un nouveau container basé sur ubuntu:18.04.

docker container run -ti ubuntu:18.04

Vérifiez si le package figlet est présent.

figlet

Vous devriez obtenir l’erreur suivante:

bash: figlet: command not found

Comment expliquez-vous ce résultat ?

Chaque container lancé à partir de l’image ubuntu est différent des autres. Le second container est différent de celui dans lequel figlet a été installé. Chacun correspond à une instance de l’image ubuntu et a sa propre layer, ajoutée au dessus des layers de l’image, et dans laquelle tous les changements effectués dans le container sont sauvegardés.

Sortez du container

exit

Redémarrage du container

Listez les containers (en exécution ou non) sur la machine hôte

docker container ls -a

Depuis cette liste, récuperez l’ID du container dans lequel le package figlet a été installé et redémarrez le avec la commande suivante.

Note: la commande start permet de démarrer un container se trouvant dans l’état Exited.

docker container start CONTAINER_ID

Lancez un shell intéractif dans ce container en utilisant la commande exec.

docker container exec -ti CONTAINER_ID bash

Vérifez que figlet est présent dans ce container.

figlet Hola

Vous pouvez maintenant sortir du container.

exit

Nettoyage

Listez les containers (en exécution ou non) sur la machine hôte

docker container ls -a

Pour supprimer tous les containers, nous pouvons utiliser les commandes rm et ls -aq conjointement. Nous ajoutons l’option -f afin de forcer la suppression des containers encore en exécution. Il faudrait sinon arrêter les containers et les supprimer.

docker container rm -f $(docker container ls -aq)

Tous les containers ont été supprimés, vérifiez le unee nouvelle fois avec la commande suivante:

docker container ls -a