Aller au contenu
Background Image
  1. Tools/

Docker: Vocabulary and Cheat Sheet

Quentin Marques
Auteur
Quentin Marques
Future Architecte en Cybersecurity
Sommaire

Introduction
#

Docker est une plateforme open-source qui permet d’emballer des applications et leurs dépendances dans des conteneurs portables. Les conteneurs sont des environnements légers, cohérents et reproductibles, ce qui fait de Docker une technologie centrale dans les pratiques DevOps, les pipelines CI/CD et l’Infrastructure as Code (IaC).

Avec Docker, tu peux :

  • Exécuter des applications dans des environnements isolés.
  • Garantir un comportement identique entre le développement, les tests et la production.
  • Facilement mettre à l’échelle des services et orchestrer plusieurs conteneurs.

Vocabulaire
#

Concepts de base
#

  • Conteneur : Un environnement léger et autonome qui emballe une application avec ses dépendances.
  • Image : Un modèle en lecture seule utilisé pour créer des conteneurs.
  • Dockerfile : Un fichier texte contenant des instructions pour construire une image Docker.
  • Registry : Un dépôt pour stocker et distribuer des images Docker (Docker Hub, registry auto-hébergé).
  • Container Runtime : Logiciel qui exécute les conteneurs (Docker Engine).
  • Volume : Un mécanisme de stockage persistant pour les conteneurs.
  • Réseau : Définit comment les conteneurs communiquent entre eux ou avec l’extérieur.
  • Docker Compose : Un outil pour définir et exécuter des applications multi-conteneurs à l’aide de YAML.
  • Docker Context : Un ensemble de paramètres qui permet de basculer entre différents environnements Docker (local, distant, Kubernetes, ..) pour gérer plusieurs hôtes ou clusters de manière transparente.

Objets Docker
#

  • ID / Nom du conteneur : Identifiant unique pour les conteneurs en cours d’exécution.
  • Tag : Une étiquette pour identifier les versions d’images (:latest, :v1.0).
  • Couche (Layer) : Chaque instruction dans un Dockerfile crée une nouvelle couche d’image.
  • Mappage de ports (Port Mapping) : Exposition des ports du conteneur vers l’hôte (-p hostPort:containerPort).
  • EntryPoint : La commande par défaut exécutée au démarrage d’un conteneur.
  • CMD : Les arguments par défaut pour l’EntryPoint du conteneur.
  • Variables d’environnement : Variables transmises aux conteneurs pour configurer leur comportement à l’exécution.

Commandes Docker
#

  • docker build : Construire une image à partir d’un Dockerfile.
  • docker run : Créer et démarrer un conteneur à partir d’une image.
  • docker ps : Lister les conteneurs en cours d’exécution.
  • docker stop / docker kill : Arrêter un conteneur en cours d’exécution.
  • docker rm : Supprimer un conteneur arrêté.
  • docker rmi : Supprimer une image.
  • docker logs : Afficher les logs d’un conteneur.
  • docker exec : Exécuter une commande à l’intérieur d’un conteneur en cours d’exécution.
  • docker-compose up / down : Démarrer ou arrêter des applications multi-conteneurs.
  • docker system prune : Supprimer tous les conteneurs, réseaux et images inutilisés.
  • docker context create : Créer un nouveau contexte pour se connecter à un autre hôte Docker ou cluster.
  • docker context use : Changer de contexte actif pour basculer vers un environnement Docker spécifique..

Instructions du Dockerfile
#

  • FROM : Image de base à utiliser.
  • RUN : Exécuter des commandes pour installer des paquets ou configurer l’image.
  • COPY / ADD : Copier des fichiers de l’hôte vers l’image.
  • WORKDIR : Définir le répertoire de travail pour les instructions suivantes.
  • EXPOSE : Déclarer les ports sur lesquels le conteneur écoutera.
  • ENV : Définir des variables d’environnement.
  • ENTRYPOINT : Définir le point d’entrée du conteneur.
  • CMD : Arguments par défaut pour l’ENTRYPOINT.

Prérequis
#

  • Docker Engine installé sur ton hôte (Linux, macOS ou Windows).
  • Docker Compose installé si tu utilises des configurations multi-conteneurs.
  • Connaissance de l’utilisation de la ligne de commande et des commandes Linux de base.
  • Optionnel : Un registry privé si tu prévois d’héberger tes propres images (par exemple, Gitea ou Nexus).

Fiche Recap
#

CommandeUtilitéExemple
docker build -t <monapp:1.0> .Construire une imagedocker build -t monapp:1.0
docker tag monapp:1.0 monregistry.local/monapp:1.0Étiqueter une image localedocker tag monapp:1.0 monregistry.local/monapp:1.0
docker push monregistry.local/monapp:1.0Envoyer une image vers un registrydocker push monregistry.local/monapp:1.0
docker run -d -p 8080:80 monapp:1.0Lancer un conteneur en arrière-plandocker run -d -p 8080:80 monapp:1.0
docker psLister les conteneurs en cours
docker stop <conteneur>Arrêter un conteneurdocker stop nginx
docker rm <conteneur>Supprimer un conteneurdocker rm nginx
docker rmi <image>:<version>Supprimer une imagedocker rmi nginx:1.0
docker logs <conteneur>Afficher les logs d’un conteneurdocker logs nginx
docker exec -it <conteneur> <commande>Exécuter une commande dans un conteneurdocker exec -it nginx sh
docker compose up -dDémarrer une application multi-conteneurs
docker compose downArrêter une application multi-conteneurs
docker system pruneNettoyer les objets inutilisés
docker context create --docker host=ssh://<user>@<host> <nom-context>Créer un contextedocker context create --docker host=ssh://linux@vm-infra vm-infra
docker context use <nom-context>Change de contextedocker context use vm-infra

Ressources supplémentaires
#