Exercice 02 : Manipuler les images Docker
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Télécharger une image avec
docker pullen précisant le tag - ✅ Lister les images locales avec
docker image ls - ✅ Inspecter les métadonnées d'une image avec
docker image inspect - ✅ Supprimer une image avec
docker image rm - ✅ Nettoyer les images inutilisées avec
docker image prune
Durée estimée : 25 minutes
Difficulté : ⭐⭐☆☆☆ (Débutant)
Prérequis :
- Exercice 01 complété
- Connexion internet pour accéder à Docker Hub
📖 Contexte
Une image Docker est un modèle en lecture seule qui sert de base à la création de conteneurs. Elle est composée de couches (*layers*) empilées les unes sur les autres. Avant de lancer un conteneur, Docker a besoin que l'image soit disponible localement. Si elle est absente, il la télécharge depuis un registre (par défaut Docker Hub). Comprendre comment gérer les images est essentiel pour maîtriser l'espace disque de votre machine.
📋 Énoncé
Téléchargez plusieurs images depuis Docker Hub, explorez leurs métadonnées, puis nettoyez votre environnement en supprimant les images inutilisées.
🧭 Déroulement de l'exercice
Tâche 1 : Télécharger des images avec un tag précis
Téléchargez les images suivantes depuis Docker Hub sans lancer de conteneur :
nginx:1.25-alpineubuntu:22.04alpine:3.19
Indice :
docker pull <image>:<tag>télécharge uniquement l'image. Le tagalpinedésigne une variante légère basée sur Alpine Linux (~5 MB contre ~80 MB pour la version standard).
Vérification : docker image ls doit lister les 3 images avec leurs tailles respectives.
Tâche 2 : Lister et filtrer les images locales
Listez toutes les images locales. Filtrez ensuite l'affichage pour ne montrer que le nom et la taille de chaque image (sans les colonnes IMAGE ID et CREATED).
Indice :
docker image lsaccepte un argument de format avec--format. La syntaxe est"{{.Repository}}:{{.Tag}}\t{{.Size}}".
Vérification : Vous devez voir au minimum les 3 images téléchargées à la tâche précédente, avec leurs tailles.
Tâche 3 : Inspecter une image
Inspectez l'image nginx:1.25-alpine et trouvez :
- Le système d'exploitation de base (
Os) - L'architecture cible (
Architecture) - Le nombre de couches (*layers*) qui composent l'image
Indice :
docker image inspect <image>retourne un JSON détaillé. Vous pouvez filtrer avec--format '{{.Os}}'ou utilisergrepsur la sortie.
Vérification : docker image inspect nginx:1.25-alpine --format '{{.Os}}' doit retourner linux.
Tâche 4 : Supprimer une image
Supprimez l'image ubuntu:22.04 de votre système local.
Indice :
docker image rm <image>:<tag>supprime une image. La commande échouera si un conteneur (même arrêté) utilise encore cette image.
Vérification : docker image ls | grep ubuntu ne doit rien retourner.
Tâche 5 : Nettoyer les images inutilisées
Affichez la liste des images "dangling" (sans tag, non utilisées), puis supprimez-les toutes d'un coup.
Indice :
docker image prunesupprime uniquement les images sans tag. Avec le flag-a, elle supprime toutes les images non utilisées par un conteneur actif. L'option-févite la confirmation interactive.
Vérification : docker system df doit montrer une réduction de l'espace utilisé par les images.
🗂️ Mini-Projet : Gérer un catalogue d'images
Reproduisez ce scénario en utilisant les commandes apprises :
# 1. Télécharger les images
docker pull nginx:1.25-alpine
docker pull ubuntu:22.04
docker pull alpine:3.19
# 2. Lister avec format personnalisé
docker image ls --format "{{.Repository}}:{{.Tag}}\t{{.Size}}"
# 3. Inspecter nginx
docker image inspect nginx:1.25-alpine --format '{{.Os}} / {{.Architecture}}'
# 4. Supprimer ubuntu
docker image rm ubuntu:22.04
# 5. Nettoyer
docker image prune -fCheckpoints de validation :
docker pull nginx:1.25-alpinese termine parStatus: Downloaded newer imagedocker image lsliste au moins 3 images après les pullsdocker image inspect nginx:1.25-alpine --format '{{.Os}}'retournelinuxdocker image ls | grep ubuntuest vide après suppressiondocker image prune -fs'exécute sans erreur