# 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
- Construire une image à partir d’un Dockerfile
- Manipuler les tags (`latest`, versions, retaggage)
- Pousser une image vers un registre | | **Durée estimée** | 60 min | | **Répertoire de travail** | `C:\Docker\docker-images` (Windows) ou `~/docker/docker-images` (Linux) | | **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** : ```dockerfile 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 `:` ? --- ### 3.2. Retagger une image - Identifiez l’`IMAGE ID` de 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`. --- ## 4. Cas pratique 1 – Comprendre les tags 1. Re-tagguez `toolbox:2.0` en `toolbox:latest`. 2. Lancez deux conteneurs : ```bash docker run -it toolbox:1.0 docker run -it toolbox ``` 3. Comparez les versions exécutées. --- ## 5. Cas pratique 2 – Supprimer et nettoyer 1. Supprimez le tag `toolbox:1.0`. 2. Observez ce qui se passe avec `docker images`. 3. Exécutez : ```bash docker image prune ``` ➡️ Quelles images sont supprimées ? Quelles restent ? --- ## 6. Cas pratique 3 – Publication 1. Connectez-vous à Docker Hub (`docker login`). 2. Retaggez `toolbox:2.0` en : ```bash docker tag toolbox:2.0 /toolbox:2.0 ``` 3. Poussez l’image : ```bash docker push /toolbox:2.0 ``` 4. 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 `:latest` et un numéro de version ? - Pourquoi faut-il être prudent avec `latest` en production ? ---