Formation Docker

Installer Docker et vérifier son poste en 20 minutes

Un poste prêt en 20 minutes : Docker Desktop ou Docker Engine, Compose v2, un premier conteneur visible dans le navigateur et les bons réflexes de sécurité.

Module 0 · Démarrer vite et sereinement

Leçon gratuite

Objectif du chapitre

Votre machine exécute docker version, docker compose version et lance un premier conteneur web visible dans votre navigateur. Durée : 20 min · 90 % pratique.

Prérequis : MonTour dans un conteneur et la méthode (chapitre 00).

docker (CLI)bloc « Client »MOTEUR · bloc « Server »dockerdAPI, images, réseaux, volumescontainerdcycle de vie des conteneursrunccrée le processus isoléconteneur nginx :80APIlocalhost:8080-p 8080:80« Cannot connect to the Docker daemon » = le bloc Server ne répond pas
Schéma Ce qu’il y a derrière la commande docker

Comment lire le schéma

  • La commande docker n’est qu’un client : elle envoie des requêtes à l’API du moteur (via le socket /var/run/docker.sock).
  • Le moteur (bloc Server de docker version) délègue : dockerd gère images, réseaux et volumes, containerd le cycle de vie, runc crée le processus isolé.
  • -p 8080:80 relie le port 8080 de votre machine au port 80 du conteneur (pointillés).
  • Si seul le bloc Client s’affiche, c’est le moteur qui est arrêté, pas votre commande qui est fausse.

Étape 1 : installer Docker

Choisissez l’installation adaptée à votre système. Dans les trois cas, vous obtenez le moteur Docker, la commande docker et le plugin docker compose (avec un espace, la version 2).

  • macOS : Docker Desktop (puces Apple ou Intel). Alternative légère : OrbStack ou Colima.
  • Windows : activez WSL 2, puis installez Docker Desktop en cochant le moteur WSL 2. Travaillez ensuite dans votre distribution Linux (Ubuntu), pas dans PowerShell.
  • Linux : Docker Engine depuis le dépôt officiel, puis ajoutez votre utilisateur au groupe docker.
# Linux (Ubuntu / Debian) : script officiel, à relire avant de l'exécuter
curl -fsSL https://get.docker.com -o get-docker.sh
less get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER   # puis déconnexion / reconnexion

Pratique : réglez les ressources

Dans Docker Desktop, réglez la mémoire sur 4 Go minimum et l’espace disque sur 40 Go. Supabase en local (chapitre 08) lance une dizaine de conteneurs : avec 2 Go, il démarre mal et les erreurs sont trompeuses.

Étape 2 : vérifier le moteur et Compose

docker version          # deux blocs : Client et Server
docker compose version  # v2.x attendu
docker info | head -20  # pilote de stockage, mémoire disponible

Si seul le bloc Client s’affiche, le moteur n’est pas démarré : lancez Docker Desktop ou sudo systemctl start docker.

Étape 3 : premiers conteneurs

docker run --rm hello-world
docker run --rm -d -p 8080:80 --name web nginx:alpine
curl -I http://localhost:8080   # HTTP/1.1 200 OK
docker logs web
docker stop web                 # --rm le supprime automatiquement

Lisez chaque option avant de lancer : --rm supprime le conteneur à l’arrêt, -d le lance en arrière-plan, -p 8080:80 relie le port 8080 de votre machine au port 80 du conteneur.

Réflexe sécurité

Être dans le groupe docker équivaut à être administrateur de la machine : un conteneur peut monter / et le modifier. Ne lancez jamais une image inconnue copiée d’un forum ou proposée par une IA sans vérifier sa source (image officielle, éditeur vérifié) et son tag exact.

Étape 4 : l’extension de votre éditeur

  • VS Code ou Cursor : extension Docker (Container Tools) et Dev Containers.
  • WebStorm / IntelliJ IDEA : plugin Docker intégré, onglet Services.
  • Antigravity : extension Docker de l’Open VSX.

Vous y verrez images, conteneurs et volumes, et vous pourrez lire les logs sans quitter l’éditeur. Gardez quand même le terminal : toutes les commandes de la formation y sont données.

Le prompt reproductible

Même point de départ, même contexte, même résultat : partez du tag indiqué et collez ce prompt tel quel.

Point de départ : tag dk00 du dépôt MonTour.
Tâche : vérifie mon poste pour la formation Docker. Lance docker version,
docker compose version et docker info, puis explique en une ligne chacun
ce qui manque ou pose problème (moteur arrêté, mémoire < 4 Go,
Compose v1, architecture arm64/amd64).
Contraintes : n'installe rien, ne lance aucun conteneur, ne modifie aucun
fichier. Ne propose que des commandes issues de docs.docker.com.

Qualité et sécurité : ce que vous vérifiez

  • Des images officielles et des tags explicites : nginx:alpine plutôt que nginx ; vous fixerez une version précise dès le chapitre 03.
  • Rien ne traîne : docker ps -a est vide après les essais. Prenez l’habitude de --rm.
  • Sans IA : retrouvez dans docker run --help la signification de -p, -d et --rm.

Outillage IA de ce chapitre

Connecteurs MCP : aucun à ce stade. L’assistant peut lancer des commandes de lecture (docker version, docker info), jamais docker run sans votre accord.

Agents : aucun. Détails dans le chapitre agents IA et Docker.

Vérifier

  • ☐ docker version affiche les blocs Client et Server.
  • ☐ docker compose version affiche une version 2.
  • ☐ localhost:8080 a affiché la page d’accueil nginx.
  • ☐ docker ps -a ne liste aucun conteneur oublié.
  • ☐ Commit et tag dk01 posés (un simple fichier docs/poste.md avec vos versions).

Défi

Lancez docker run --rm -it alpine sh, créez un fichier, quittez, relancez la même commande : le fichier a disparu. Expliquez pourquoi en une phrase. La réponse est au chapitre suivant.

Pour aller plus loin

Suivez votre progression. Créez un compte gratuit pour cocher vos leçons et reprendre là où vous en étiez.

Créer un compte gratuit