Formation pratique · accès gratuit

Docker, de zéro au premier projet complet.

Installez Docker proprement, lancez et inspectez vos conteneurs, rendez leurs données persistantes, puis orchestrez une application avec Docker Compose.

Débutant → IntermédiaireDeux parcours indépendantsWindows avec interface graphiqueUbuntu avec Docker Engine
!

Docker n’est pas une machine virtuelle magique

Un conteneur partage le noyau de son hôte. N’exécutez pas une image inconnue, n’exposez pas le socket Docker et ne publiez que les ports réellement nécessaires.

01

Ordinateur

Windows 11 avec WSL 2 et virtualisation, ou Ubuntu 22.04/24.04 64 bits. 8 Go de RAM conseillés.

02

Terminal

Savoir naviguer dans un dossier et reconnaître un port local. Toutes les commandes sont copiables.

03

Données

Un dossier de test sans document important. Les volumes seront manipulés et supprimés pendant les exercices.

Une formation Docker, deux parcours

Choisissez votre environnement

Les deux formations partagent les mêmes bases, mais ne mélangent plus les méthodes. Choisissez uniquement celle qui correspond à votre ordinateur.

Vous pourrez revenir à cette page et changer de parcours à tout moment.

01

Fondations · 20 min

Comprendre images, conteneurs et registres

Maîtriser le vocabulaire avant de lancer la première commande.

Une image est un modèle immuable. Un conteneur est une instance isolée créée depuis cette image. Un registre, comme Docker Hub, distribue les images.

ImageLe plan de construction versionné et réutilisable.
ConteneurLe processus en cours, avec son propre système de fichiers éphémère.
Port publié
Relie un port du PC à un port du conteneur.
Volume
Conserve les données au-delà de la vie du conteneur.
02

Parcours Windows · 30 min

Installer Docker Desktop avec WSL 2

À suivre uniquement sur Windows 11. Les utilisateurs Ubuntu passent directement à l’autre méthode.

  1. 1
    Vérifier WSL

    Ouvrez PowerShell et contrôlez la version installée.

  2. 2
    Installer Docker Desktop

    Téléchargez l’installeur officiel et choisissez le mode par utilisateur avec le moteur WSL 2.

  3. 3
    Démarrer Docker

    Attendez l’état « Engine running », puis vérifiez la CLI.

Vérifier WSLwsl --version
Mettre WSL à jourwsl --update
Vérifier Dockerdocker version
Licence Docker Desktop

L’usage commercial dans certaines grandes organisations exige une souscription. Vérifiez les conditions officielles selon votre situation.

02

Parcours Ubuntu · 35 min

Installer Docker Engine depuis le dépôt officiel

À suivre uniquement sur Ubuntu. Les utilisateurs Windows conservent Docker Desktop et ignorent cette méthode.

i

Commandes volontairement explicites

La page officielle Ubuntu reste la référence si la distribution ou la version change.

Préparer les dépendancessudo apt update && sudo apt install ca-certificates curl
Installer le moteur et Composesudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérifier le servicesudo systemctl status docker

Avant la commande d’installation, ajoutez la clé GPG et le dépôt APT en suivant exactement la documentation officielle liée en bas de cette page.

!

Groupe docker = privilèges élevés

Ajouter un utilisateur au groupe docker lui donne un contrôle quasi administrateur sur la machine. Ne le faites pas sur un compte non fiable.

Parcours communÀ partir d’ici, les commandes sont identiques sur Windows et Ubuntu.
03

Pratique commune · 25 min

Lancer et inspecter un premier conteneur

Tester Docker avec hello-world puis publier un serveur Web local.

Test officiel minimaldocker run --rm hello-world
Lancer Nginx sur le port 8080docker run -d --name web-demo -p 127.0.0.1:8080:80 nginx:alpine
Voir les conteneursdocker ps -a
Lire les journauxdocker logs web-demo
Arrêter et supprimerdocker rm -f web-demo
04

Construction · 30 min

Créer une image avec un Dockerfile

Transformer un dossier de projet en image reproductible.

Créez un dossier contenant un fichier index.html et ce Dockerfile :

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
Construire l’image localedocker build -t owlnet-demo:1.0 .
Lancer l’image construitedocker run --rm -p 127.0.0.1:8080:80 owlnet-demo:1.0
Bon réflexe

Utilisez une image de base officielle, une version précise lorsque la stabilité l’exige, un fichier .dockerignore et le moins de dépendances possible.

05

Données · 25 min

Conserver les données avec un volume

Comprendre ce qui disparaît lorsque le conteneur est supprimé.

Volume nommé

Géré par Docker. Recommandé pour une base de données.

Bind mount

Relie un dossier précis de l’hôte. Pratique pour le développement.

Créer un volumedocker volume create donnees-demo
Inspecter le volumedocker volume inspect donnees-demo
!

Attention à la suppression

docker compose down conserve les volumes nommés. L’option --volumes les supprime : sauvegardez avant.

06

Réseau · 25 min

Relier les services sans tout exposer

Utiliser les noms de services et publier seulement l’interface nécessaire.

Sur un réseau Docker, les conteneurs communiquent par leur nom. Une base de données n’a généralement pas besoin d’un port publié vers le PC ou Internet.

Créer un réseau isolédocker network create reseau-demo
Inspecter le réseaudocker network inspect reseau-demo
127.0.0.1 plutôt que 0.0.0.0

Pour un outil local, publiez 127.0.0.1:8080:80. Il restera accessible uniquement depuis le PC.

07

Orchestration · 40 min

Décrire l’application avec Docker Compose

Remplacer une longue commande par un fichier versionnable.

services:
  web:
    image: nginx:alpine
    ports:
      - "127.0.0.1:8080:80"
    restart: unless-stopped
    volumes:
      - ./site:/usr/share/nginx/html:ro
Démarrer en arrière-plandocker compose up -d
Suivre les journauxdocker compose logs -f
Arrêter le projetdocker compose down
08

Exploitation · 30 min

Maintenir et sécuriser Docker

Mettre à jour sans supprimer aveuglément les données.

Images fiables
Préférez les éditeurs officiels et lisez les tags.
Utilisateur non-root
Configurez l’image pour limiter les privilèges.
Secrets séparés
Ne placez jamais de mot de passe dans l’image ou Git.
Sauvegardes testées
Sauvegardez les données, pas seulement le compose.yaml.
Voir l’espace utilisédocker system df
Voir les processusdocker stats --no-stream
Nettoyer les objets inutilisés sans volumesdocker system prune
!

Ne copiez pas « prune -a --volumes » au hasard

Cette commande peut effacer images, caches et volumes inutilisés. Lisez toujours la liste et disposez d’une sauvegarde.

09

Projet final · 45 min

Déployer un mini-site local reproductible

Assembler image, volume en lecture seule, port local et Compose.

  1. 1
    Créer le contenu

    Préparez un dossier site avec un index.html.

  2. 2
    Écrire compose.yaml

    Réutilisez le modèle de l’étape 7 et gardez le port lié à 127.0.0.1.

  3. 3
    Démarrer et vérifier

    Ouvrez localhost:8080, consultez les logs et inspectez le conteneur.

  4. 4
    Reproduire

    Arrêtez, supprimez le conteneur puis relancez le projet avec le même fichier.

Diagnostic finaldocker compose ps && docker compose logs --tail=20

Validation finale

Vous êtes autonome lorsque…

Continuer avec la documentation officielle Docker

Les prérequis, commandes et versions évoluent. Vérifiez la documentation officielle avant une installation de production.

Commande copiée