Exercice : Gestion des images Docker
Informations générales
Élément |
Description |
|---|---|
Compétences |
Construire, tagger, documenter et publier des images Docker dans un registre. |
Objectifs |
- Comprendre la différence entre une image, un conteneur et un tag |
Durée estimée |
60 min |
Répertoire de travail |
|
Fichiers sources |
Un Dockerfile simple (fourni ci-dessous) |
À produire |
- Un document imprimé avec vos observations et réponses |
Moyens d’aide |
Le support de cours |
1. Rappel
Une image Docker est un artefact construit à partir d’un
Dockerfile.Un tag permet d’identifier une version spécifique d’une image.
Sans tag explicite, Docker utilise automatiquement
:latest.
2. Questions
2.1. Image vs Conteneur
Expliquez la différence entre une image et un conteneur.
2.2. Commandes de base
Quelles sont les commandes pour :
lister les images disponibles localement
inspecter une image
supprimer une image
nettoyer les images orphelines (dangling images)
3. Échauffement
3.1. Construire une image
À partir du Dockerfile suivant, construisez une image sans tag :
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y curl
CMD ["bash"]
Quelle est l’apparence de cette image dans
docker image ls?Que signifient les champs
<none>:<none>?
3.2. Retagger une image
Identifiez l’
IMAGE IDde l’image orpheline créée.Donnez-lui un tag explicite
toolbox:1.0.Vérifiez dans
docker images.
3.3. Construire avec un tag
Reconstruisez la même image en lui donnant directement un tag toolbox:2.0.
Comparez avec la version 1.0.
5. Cas pratique 2 – Supprimer et nettoyer
Supprimez le tag
toolbox:1.0.Observez ce qui se passe avec
docker images.Exécutez :
docker image prune
➡️ Quelles images sont supprimées ? Quelles restent ?
6. Cas pratique 3 – Publication
Connectez-vous à Docker Hub (
docker login).Retaggez
toolbox:2.0en :docker tag toolbox:2.0 <NOM_COMPTE>/toolbox:2.0
Poussez l’image :
docker push <NOM_COMPTE>/toolbox:2.0
Vérifiez sur hub.docker.com que l’image est bien disponible.
7. Synthèse
Qu’est-ce qu’un tag et pourquoi est-il important ?
Quelle est la différence entre
:latestet un numéro de version ?Pourquoi faut-il être prudent avec
latesten production ?