DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesDocker expliqué simplement : lancer ses premiers conteneurs03 - Créer et gérer des conteneurs

Détails

  • 20 minutes
  • Débutant

Objectifs

  • Créer des conteneurs en mode détaché et interactif
  • Gérer le cycle de vie d'un conteneur
  • Lister les conteneurs actifs et arrêtés
  • Supprimer des conteneurs individuellement ou en masse
Module Docker expliqué simplement : lancer ses premiers conteneurs

Exercice 03 : Créer et gérer des conteneurs

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Lancer un conteneur en arrière-plan avec -d et lui donner un nom avec --name
  • ✅ Lancer un conteneur interactif avec -it et le supprimer automatiquement avec --rm
  • ✅ Lister les conteneurs actifs et tous les conteneurs avec docker ps et docker ps -a
  • ✅ Arrêter, démarrer et redémarrer un conteneur avec stop, start, restart
  • ✅ Supprimer des conteneurs avec docker rm et docker container prune

Durée estimée : 20 minutes

Difficulté : ⭐⭐☆☆☆ (Débutant)

Prérequis :

  • Exercices 01 et 02 complétés
  • Image nginx:1.25-alpine présente localement

📖 Contexte

Un conteneur est une instance en cours d'exécution d'une image. Contrairement à une image (statique), un conteneur a un état : il peut être en cours d'exécution (running), arrêté (exited), ou en pause. Maîtriser le cycle de vie des conteneurs - création, démarrage, arrêt, suppression - est la compétence la plus utilisée au quotidien avec Docker.


📋 Énoncé

Créez plusieurs conteneurs avec différentes options, explorez leurs états, gérez leur cycle de vie, puis nettoyez l'environnement.


🧭 Déroulement de l'exercice

Tâche 1 : Lancer un conteneur en mode détaché

Lancez un conteneur Nginx nommé mon-nginx en arrière-plan (mode détaché), à partir de l'image nginx:1.25-alpine.

Indice : L'option -d (detach) lance le conteneur en arrière-plan et retourne son ID. L'option --name lui donne un nom lisible à la place d'un ID aléatoire.

Vérification : docker ps doit lister mon-nginx avec le statut Up.


Tâche 2 : Lancer un conteneur interactif

Lancez un conteneur Alpine en mode interactif avec un shell sh. Le conteneur doit se supprimer automatiquement à la sortie. Tapez echo "Je suis dans un conteneur" puis quittez avec exit.

Indice : -it combine -i (stdin ouvert) et -t (pseudo-TTY). --rm supprime le conteneur dès qu'il s'arrête. La commande à exécuter dans le conteneur se place à la fin : docker run -it --rm alpine sh.

Vérification : Après exit, docker ps -a | grep alpine ne doit rien retourner (le conteneur a été supprimé automatiquement).


Tâche 3 : Lister tous les conteneurs

Listez d'abord les conteneurs actifs, puis tous les conteneurs (y compris arrêtés). Observez la différence entre les deux commandes.

Indice : Sans option, docker ps n'affiche que les conteneurs en cours. Le flag -a (all) affiche aussi les conteneurs arrêtés.

Vérification : docker ps doit montrer mon-nginx en statut Up. docker ps -a doit aussi lister le conteneur hello-world de l'exercice 01 avec le statut Exited.


Tâche 4 : Arrêter et redémarrer un conteneur

Arrêtez le conteneur mon-nginx, vérifiez son statut, puis redémarrez-le.

Indice : docker stop <nom> envoie un signal SIGTERM au conteneur (graceful shutdown). docker start <nom> le redémarre. docker restart <nom> fait les deux en une commande.

Vérification : Après docker stop, docker ps -a | grep mon-nginx doit afficher Exited. Après docker start, il doit repasser à Up.


Tâche 5 : Supprimer les conteneurs

Arrêtez mon-nginx, puis supprimez-le. Ensuite, supprimez tous les conteneurs arrêtés restants en une seule commande.

Indice : docker rm <nom> supprime un conteneur arrêté. Pour supprimer un conteneur en cours, ajoutez -f (force). docker container prune supprime tous les conteneurs arrêtés d'un coup.

Vérification : docker ps -a doit être vide (ou ne contenir aucun conteneur avec statut Exited).


🗂️ Mini-Projet : Cycle de vie complet

Reproduisez ce scénario dans l'ordre :

bash
# 1. Lancer en arrière-plan
docker run -d --name mon-nginx nginx:1.25-alpine

# 2. Lancer en interactif (et sortir)
docker run -it --rm alpine sh
# Dans le conteneur : echo "Bonjour depuis Alpine !" puis exit

# 3. Vérifier les états
docker ps
docker ps -a

# 4. Arrêter et redémarrer
docker stop mon-nginx
docker start mon-nginx
docker restart mon-nginx

# 5. Nettoyer
docker stop mon-nginx
docker rm mon-nginx
docker container prune -f

Checkpoints de validation :

  • docker ps | grep mon-nginx affiche Up après docker run -d
  • docker run -it --rm alpine sh ouvre un shell interactif dans le conteneur
  • docker ps -a liste plus de conteneurs que docker ps
  • docker stop mon-nginx suivi de docker ps -a affiche Exited
  • docker ps -a est vide après docker container prune -f

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Lancer un conteneur en mode détaché
  • Tâche 2 : Lancer un conteneur interactif
  • Tâche 3 : Lister tous les conteneurs
  • Tâche 4 : Arrêter et redémarrer un conteneur
  • Tâche 5 : Supprimer les conteneurs
  • 🗂️ Mini-Projet : Cycle de vie complet