DEV Community

Cover image for Docker pour débutants : le tutoriel pas à pas en 5 étapes (2026)
Neurau Tech
Neurau Tech

Posted on Originally published at neurautech.com

Docker pour débutants : le tutoriel pas à pas en 5 étapes (2026)

L'essentiel en une minute

Ce tutoriel Docker pour débutants vous mène de l'installation à une API Node.js conteneurisée, lancée avec Docker Compose à côté d'une base PostgreSQL. Docker empaquette une application et ses dépendances dans une image, puis l'exécute dans un conteneur isolé, identique sur votre poste et sur le serveur.

Commandes et versions viennent de la documentation officielle de Docker, consultée le 25 octobre 2026. Le code n'a pas été exécuté pour cet article.

Points clés

  • Au 25 octobre 2026, Docker Desktop en est à la 4.96.3 (22 octobre) et Docker Engine à la 29.9.2 (20 octobre), selon les notes de version.
  • Docker Desktop est gratuit pour un usage personnel et pour les entreprises de moins de 250 salariés et de moins de 10 millions de dollars de chiffre d'affaires annuel. Au-delà, il est payant.
  • Un bon Dockerfile en 2026 utilise plusieurs étapes, une image de base à version fixée, un utilisateur non root et un fichier .dockerignore.
  • Avec Docker Compose, la clé version est obsolète, la commande s'écrit docker compose sans tiret, et l'API doit attendre que la base soit prête.
  • Depuis PostgreSQL 18, le volume de l'image officielle se monte sur /var/lib/postgresql, et non plus sur le sous-dossier data.

Conteneur ou machine virtuelle : ce que fait Docker

Un conteneur n'est pas une petite machine virtuelle : c'est un processus isolé qui partage le noyau du système hôte. La documentation de Docker le résume ainsi : un conteneur est « simplement un processus isolé avec tous les fichiers dont il a besoin pour fonctionner », alors qu'une machine virtuelle est « un système d'exploitation complet avec son propre noyau » (notre traduction, documentation de Docker sur les conteneurs, consultée le 25 octobre 2026).

Une image Docker est un modèle en lecture seule qui contient les instructions pour créer un conteneur, et un conteneur est une instance exécutable de cette image (présentation de Docker).

Critère Conteneur Docker Machine virtuelle
Noyau Partagé avec l'hôte Propre à chaque machine
Contenu L'application et ses dépendances Un système d'exploitation complet
Usage typique Une application ou un service par conteneur Isoler un système entier
Isoler une seule application Un processus isolé suffit « Beaucoup de surcoût », selon Docker

Ce tableau est notre synthèse ; la citation de la dernière ligne vient de la même page (notre traduction). La commande docker pilote un démon, dockerd, qui télécharge les images depuis un registre, Docker Hub par défaut (présentation de Docker).


Pourquoi apprendre Docker en 2026

Dans l'enquête Stack Overflow 2026, Docker arrive en tête de la rubrique « Cloud development », qui mêle plateformes cloud, conteneurs et gestionnaires de paquets. 59,1 % des 10 889 répondants à cette question déclarent avoir travaillé avec Docker ou Docker Compose au cours de l'année écoulée, devant npm (54,6 %), pip (42,1 %) et AWS (41,8 %), et loin devant Kubernetes (26,0 %) et Podman (13,0 %) (Stack Overflow Developer Survey 2026, consulté le 25 octobre 2026).

Graphique en barres horizontales : dans l'enquête Stack Overflow 2026, 59,1 % des répondants de la rubrique Cloud development utilisent Docker, un repère utile pour situer ce guide Docker pour débutants face à npm, pip, AWS, Kubernetes et Podman

58,9 % des utilisateurs de Docker souhaitent le garder. L'édition 2025 donnait 71,1 % d'usage sur 24 473 réponses, mais la liste d'options a changé entre les deux éditions : ne lisez pas l'écart comme une baisse (Stack Overflow Developer Survey 2025, consulté le 25 octobre 2026).

Graphique en colonnes : en 2025, 71,1 % de l'ensemble des répondants, 73,8 % des développeurs professionnels et 52,5 % des personnes en apprentissage utilisent Docker

En 2025, 52,5 % des 1 558 personnes en apprentissage utilisaient déjà Docker, contre 73,8 % des 20 070 développeurs professionnels.


Étape 1 : installer Docker sur Windows, macOS ou Linux

Sur Windows et macOS, on installe Docker Desktop, qui embarque le moteur, la ligne de commande et Docker Compose ; sur Linux, Docker Engine. La version 4.96.3 de Docker Desktop est sortie le 22 octobre 2026, et la 4.96.2 du même jour embarque Docker Compose v5.6.1 (notes de version de Docker Desktop, consultées le 25 octobre 2026). Docker Engine en est à la 29.9.2, publiée le 20 octobre (notes de version de Docker Engine).

La licence de Docker Desktop

Selon sa page de licence, Docker Desktop est gratuit pour les petites entreprises (moins de 250 salariés et moins de 10 millions de dollars de chiffre d'affaires annuel), l'usage personnel, l'enseignement et les projets open source non commerciaux. Il est payant pour l'usage professionnel dans les organisations plus grandes et pour les administrations (licence de Docker Desktop, consultée le 25 octobre 2026).

Offre Prix affiché, facturation annuelle Prix affiché, facturation mensuelle
Docker Personal 0 $ 0 $
Docker Pro 9 $ par utilisateur et par mois 11 $ par utilisateur et par mois
Docker Team 15 $ par utilisateur et par mois 16 $ par utilisateur et par mois
Docker Business 24 $ par utilisateur et par mois 24 $ par utilisateur et par mois

Prix en dollars par utilisateur, relevés le 25 octobre 2026 sur la page de tarifs de Docker. Docker Engine, lui, est open source sous licence Apache 2.0 (présentation de Docker Engine).

Windows : Docker Desktop avec WSL 2

Sur Windows, Docker Desktop s'appuie sur WSL 2, le sous-système Linux de Windows. Pour ce mode, la page d'installation liste Windows 10 64 bits « Enterprise, Pro, or Education version 22H2 (build 19045) » et Windows 11 64 bits dans les mêmes éditions, version 23H2 (build 22631) ou plus récente. Elle demande WSL 2.1.5 au minimum, un processeur 64 bits avec SLAT, 8 Go de mémoire vive (« 8GB system RAM ») et la virtualisation activée dans le BIOS ou l'UEFI (installation sur Windows, consultée le 25 octobre 2026).

Docker n'y prend en charge que les versions de Windows encore maintenues par Microsoft, et précise que les éditions Famille et Éducation ne lancent que des conteneurs Linux, ce qui suffit ici.

Dans PowerShell, installez ou mettez à jour WSL :

wsl --install
wsl --update
Enter fullscreen mode Exit fullscreen mode

Lancez ensuite Docker Desktop Installer.exe, choisissez WSL 2 plutôt que Hyper-V quand l'assistant le demande, puis démarrez Docker Desktop.

macOS : Docker Desktop

Sur Mac, Docker Desktop est pris en charge sur la version actuelle de macOS et les deux précédentes, avec au moins 4 Go de mémoire vive. Téléchargez l'installateur adapté à votre puce (Apple ou Intel), ouvrez Docker.dmg et glissez Docker dans Applications (installation sur Mac, consultée le 25 octobre 2026).

Linux : Docker Engine sur Ubuntu

Sur Linux, installez Docker Engine depuis le dépôt officiel. La page pour Ubuntu liste les versions 26.10, 26.04 LTS, 24.04 LTS et 22.04 LTS. Retirez d'abord les paquets non officiels, puis ajoutez le dépôt (installation sur Ubuntu, consultée le 25 octobre 2026) :

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Le script rapide get.docker.com, que citait la première version de cet article, n'est pas recommandé par Docker pour la production.

Pour utiliser Docker sans sudo, ajoutez votre compte au groupe docker, en sachant que ce groupe donne des privilèges équivalents à root selon la documentation (étapes après installation) :

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Enter fullscreen mode Exit fullscreen mode

Si groupadd répond que le groupe existe déjà, ce n'est pas une erreur. newgrp n'agit que sur le terminal ouvert : déconnectez-vous puis reconnectez-vous, comme le conseille la documentation.

Sur Windows et macOS, vérifiez l'installation avec docker run hello-world.


Étape 2 : lancer vos premiers conteneurs

Sept commandes suffisent pour faire vivre un conteneur : run, ps, images, logs, exec, stop et rm. Cet exemple lance le serveur web Nginx en version stable 1.30, la ligne affichée comme stable sur sa page Docker Hub le 25 octobre 2026 :

# Télécharger l'image et démarrer un conteneur en arrière-plan
docker run -d --name mon-nginx -p 127.0.0.1:8080:80 nginx:1.30

# Lister les conteneurs actifs, puis tous les conteneurs
docker ps
docker ps -a

# Lister les images présentes sur la machine
docker images

# Suivre les journaux du conteneur (Ctrl+C pour quitter)
docker logs -f mon-nginx

# Ouvrir un shell dans le conteneur, puis taper exit pour sortir
docker exec -it mon-nginx sh

# Arrêter puis supprimer le conteneur
docker stop mon-nginx
docker rm mon-nginx
Enter fullscreen mode Exit fullscreen mode

Ouvrez http://127.0.0.1:8080 pendant que le conteneur tourne : la page d'accueil de Nginx s'affiche. D'après la référence de docker run, -d lance le conteneur en arrière-plan, --name lui donne un nom et -it ouvre un terminal interactif. -p 127.0.0.1:8080:80 publie le port 80 du conteneur sur le port 8080 de votre machine : toujours le port de l'hôte d'abord.

Pourquoi 127.0.0.1 devant le port ? La documentation de Docker prévient que publier un port est « non sécurisé par défaut » : le port devient accessible depuis l'extérieur (notre traduction, publication des ports). L'adresse locale réserve l'accès à votre poste. Sur Ubuntu, la page d'installation ajoute que les ports publiés contournent les règles des pare-feu ufw et firewalld.

Supprimer un conteneur ne supprime pas l'image : docker rmi nginx:1.30 s'en charge.


Étape 3 : écrire un Dockerfile pour une petite application

Un Dockerfile décrit comment construire une image Docker. Notre exemple conteneurise l'API de tâches de notre tutoriel pour créer une API REST avec Node.js et Express : un dossier api-taches avec package.json, package-lock.json et le code dans src/. src/server.js écoute le port 3000 et refuse de démarrer sans JWT_SECRET d'au moins 32 octets ; la base SQLite est le fichier désigné par DB_PATH.

# syntax=docker/dockerfile:1

# Étape 1 : installer les dépendances de production
FROM node:24-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev

# Étape 2 : image finale
FROM node:24-alpine
ENV NODE_ENV=production
ENV DB_PATH=/app/data/data.db
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY package.json ./
COPY src ./src
RUN mkdir -p /app/data && chown node:node /app/data
USER node
EXPOSE 3000
CMD ["node", "src/server.js"]
Enter fullscreen mode Exit fullscreen mode

Chaque choix de ce Dockerfile suit une recommandation officielle :

  • Plusieurs étapes. Chaque FROM ouvre une étape, et COPY --from=deps ne reprend que le dossier node_modules (builds multi-étapes). Une compilation TypeScript irait, elle aussi, dans une étape séparée.
  • Une version fixée. node:24-alpine vise la ligne 24, signalée comme LTS sur la page Docker Hub de Node.js le 25 octobre 2026, la version qu'exige l'API. Docker conseille même d'épingler l'image par son empreinte (digest) (bonnes pratiques de build).
  • Un utilisateur non root. Les bonnes pratiques de Docker demandent d'utiliser USER quand un service peut tourner sans privilèges. Les images Node.js fournissent pour cela l'utilisateur node, d'identifiant 1000 (bonnes pratiques de l'image Node.js). Comme /app appartient à root, /app/data est confié à node avant USER, pour que SQLite puisse y écrire.
  • L'ordre des couches. Copier package.json avant le code réutilise le cache : npm ci n'est relancé que si les dépendances changent.

Le CMD lance node src/server.js plutôt que npm start, dont le script lit un .env : en conteneur, Docker passe les variables.

Le fichier .dockerignore

Le fichier .dockerignore, à la racine du contexte de build, exclut des fichiers avant leur envoi au moteur (contexte de build) : ici node_modules, la base locale et surtout le .env et ses secrets.

node_modules
.env
.git
data.db*
test
*.log
Enter fullscreen mode Exit fullscreen mode

Exportez d'abord un secret de 32 octets : -e JWT_SECRET, sans valeur, reprend la variable exportée, selon la référence de docker run. --init ajoute un processus qui transmet les signaux à Node.js, qui n'est pas conçu pour tourner comme premier processus, selon la documentation de l'image. Ce bloc vise un terminal bash (Linux, macOS, WSL ou Git Bash) :

export JWT_SECRET=$(node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))")
docker build -t api-taches:1.0 .
docker run -d --name api-taches --init \
  -p 127.0.0.1:3000:3000 \
  -e JWT_SECRET \
  -v api-data:/app/data \
  api-taches:1.0
curl http://127.0.0.1:3000/health
Enter fullscreen mode Exit fullscreen mode

Sous PowerShell, export et les retours à la ligne par \ ne fonctionnent pas ; la même séquence s'écrit ainsi :

$env:JWT_SECRET = node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"
docker build -t api-taches:1.0 .
docker run -d --name api-taches --init -p 127.0.0.1:3000:3000 -e JWT_SECRET -v api-data:/app/data api-taches:1.0
curl.exe http://127.0.0.1:3000/health
Enter fullscreen mode Exit fullscreen mode

Le volume api-data garde le fichier SQLite quand le conteneur est supprimé ; vide, il reçoit au premier montage le contenu du dossier de l'image (documentation des volumes). Ne passez pas le .env du projet avec --env-file : son DB_PATH=data.db pointe hors du volume, là où node ne peut pas écrire. La route /health doit répondre {"statut":"ok"} ; si la connexion est refusée, attendez une seconde que Node.js démarre. Supprimez ce conteneur (docker rm -f api-taches) avant l'étape 4, qui publie le même port. Compose préfixe les volumes du nom du projet : la base SQLite de cette étape ne sera donc pas reprise à l'étape 4.

docker init génère un Dockerfile, un compose.yaml, un .dockerignore et un README.Docker.md pour votre projet ; sa référence le présente comme fourni par Docker Desktop, donc absent d'un Docker Engine seul (référence de docker init). Relisez le résultat.


Étape 4 : une API et une base PostgreSQL avec Docker Compose

Docker Compose décrit plusieurs services dans un fichier et les lance ensemble. Le nom recommandé est compose.yaml ; docker-compose.yml reste accepté pour compatibilité (modèle d'application Compose, consulté le 25 octobre 2026). Placez ce fichier dans le dossier api-taches, à côté du Dockerfile de l'étape 3 :

services:
  api:
    build: .
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      JWT_SECRET: ${JWT_SECRET:?definir JWT_SECRET dans .env}
      DB_PATH: /app/data/data.db
      DATABASE_URL: postgres://app:${POSTGRES_PASSWORD:?definir POSTGRES_PASSWORD dans .env}@db:5432/app
    volumes:
      - api-data:/app/data
    depends_on:
      db:
        condition: service_healthy
    init: true

  db:
    image: postgres:18-alpine
    environment:
      POSTGRES_USER: app
      POSTGRES_DB: app
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?definir POSTGRES_PASSWORD dans .env}
    volumes:
      - db-data:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  api-data:
  db-data:
Enter fullscreen mode Exit fullscreen mode

Précision importante : l'API du tutoriel lié stocke ses données dans SQLite (DB_PATH, volume api-data). Le service db est un exemple générique, prêt pour le passage à PostgreSQL que ce tutoriel recommande en production : il faudra alors adapter src/db.js pour lire DATABASE_URL.

Compose lit le .env du dossier pour remplacer les variables : JWT_SECRET y est déjà, ajoutez POSTGRES_PASSWORD= suivi d'un mot de passe sans caractères spéciaux, puisqu'il entre dans une URL. Seules les variables listées sous environment arrivent dans le conteneur : le DB_PATH du .env n'y entre pas. ${VAR:?message} arrête Compose si la variable est vide ou absente (interpolation des variables).

Ce fichier évite quatre pièges des tutoriels plus anciens :

  • Pas de clé version. La spécification Compose la garde pour compatibilité, mais elle est « seulement informative » et déclenche un avertissement d'obsolescence (notre traduction, spécification Compose).
  • Une base vraiment prête. Compose n'attend pas qu'un conteneur soit prêt, seulement qu'il soit lancé. Le couple healthcheck et condition: service_healthy fait attendre l'API jusqu'à ce que pg_isready réponde (ordre de démarrage). Le $$ laisse la variable au shell du conteneur.
  • Le bon chemin de volume. Depuis PostgreSQL 18, l'image officielle déclare son volume sur /var/lib/postgresql, et ses données vont dans un sous-dossier propre à la version, /var/lib/postgresql/18/docker (page Docker Hub de PostgreSQL, consultée le 25 octobre 2026). Le montage sur /var/lib/postgresql/data vient des versions antérieures.
  • Un init pour Node.js. init: true est l'équivalent de --init : il lance un processus qui transmet les signaux (services Compose).

Dans DATABASE_URL, l'hôte s'appelle db, le nom du service : chaque service est joignable par son nom. Les commandes du quotidien :

docker compose up -d --build   # construire et démarrer en arrière-plan
docker compose ps              # état des services
docker compose logs -f api     # journaux de l'API
docker compose exec db psql -U app -d app   # console SQL
docker compose down            # arrêter, garder les données
Enter fullscreen mode Exit fullscreen mode

docker compose down supprime les conteneurs et les réseaux, mais garde les volumes. Avec -v, il supprime aussi les volumes nommés déclarés dans le fichier, donc vos deux bases (référence de docker compose down).


Étape 5 : corriger les erreurs courantes

Ces erreurs, tirées de la documentation et des guides concurrents, tiennent surtout à six causes : démon arrêté, droit manquant, port pris, mauvaise adresse d'écoute, tutoriel daté ou configuration de l'API.

Symptôme Cause probable Correction
Cannot connect to the Docker daemon Docker Desktop fermé, ou service arrêté sur Linux Lancer Docker Desktop, ou sudo systemctl start docker
permission denied sur /var/run/docker.sock Compte Linux hors du groupe docker Utiliser sudo, ou rejoindre le groupe docker en connaissant le risque
port is already allocated Un autre programme utilise le port de l'hôte Changer le premier nombre : -p 127.0.0.1:8081:80
La page ne s'affiche pas, le conteneur tourne L'application écoute 127.0.0.1 dans le conteneur La faire écouter sur 0.0.0.0 ; vérifier l'ordre hôte:conteneur
docker-compose: command not found Compose v1, retiré Taper docker compose, sans tiret
Avertissement sur l'attribut version Fichier Compose ancien Supprimer la ligne version
JWT_SECRET doit contenir au moins 32 octets Secret absent ou trop court L'exporter, ou l'ajouter au .env lu par Compose
unable to open database file DB_PATH hors de /app/data Garder DB_PATH=/app/data/data.db
L'API plante au démarrage, base injoignable (API reliée à PostgreSQL) La base n'est pas prête healthcheck et condition: service_healthy
Données PostgreSQL perdues down -v, ou volume mal monté avec PostgreSQL 18 Ne pas ajouter -v ; monter /var/lib/postgresql
Build lent, image énorme Pas de .dockerignore, code copié avant les dépendances Ajouter .dockerignore ; copier package.json en premier

Selon la page des produits retirés de Docker, docker-compose (Compose v1, en Python) a été remplacé par docker compose, intégré à la ligne de commande, et n'est plus maintenu (produits retirés de Docker, consulté le 25 octobre 2026).

Quant à latest, le 25 octobre 2026, nginx:latest pointait vers la ligne 1.31, dite « mainline », et non vers la ligne stable 1.30 (page Docker Hub de Nginx). Elle change sans prévenir : fixez la version.

Dernière règle de ce guide Docker pour débutants : un fichier modifié dans un conteneur disparaît avec lui ; seuls les volumes et l'image survivent.


Aide-mémoire : les commandes Docker pour débutants

Les commandes de ce tutoriel, à garder sous la main. Toutes figurent dans la référence de la ligne de commande de Docker.

Commande Ce qu'elle fait
docker run -d --name mon-nginx -p 127.0.0.1:8080:80 nginx:1.30 Crée et démarre un conteneur en arrière-plan
docker ps / docker ps -a Liste les conteneurs actifs / tous les conteneurs
docker images Liste les images locales
docker logs -f mon-nginx Suit les journaux d'un conteneur
docker exec -it mon-nginx sh Ouvre un shell dans un conteneur actif
docker stop mon-nginx / docker rm mon-nginx Arrête / supprime un conteneur
docker rmi nginx:1.30 Supprime une image inutilisée
docker build -t api-taches:1.0 . Construit une image depuis le Dockerfile du dossier
docker volume ls Liste les volumes
docker compose up -d --build Construit et démarre tous les services
docker compose logs -f Suit les journaux de tous les services
docker compose down / down -v Arrête les services / et supprime les volumes
docker init Génère Dockerfile, compose.yaml et .dockerignore (Docker Desktop)

Et après Docker ?

Docker Compose suffit tant que tout tient sur un serveur. Ensuite, trois suites logiques :

Côté matériel, gardez en tête les 8 Go de mémoire vive demandés sur Windows : notre guide du laptop pour développeur en tient compte.


Ce que nous n'avons pas pu vérifier

Les points suivants sont absents ou signalés comme incertains :

  • L'exécution du code. Aucune commande, aucun Dockerfile et aucun fichier Compose de cet article n'a été exécuté pour sa rédaction.
  • Windows Famille. La liste des systèmes requis cite les éditions Entreprise, Pro et Éducation ; la même page indique seulement que l'édition Famille se limite aux conteneurs Linux, sans dire explicitement si elle est prise en charge.
  • Les droits du volume SQLite. La documentation dit qu'un volume vide reçoit le contenu du dossier de l'image ; la page lue ne précise pas que le propriétaire node du dossier est conservé.
  • La mémoire consommée par Docker Desktop. Le chiffre de 2 à 4 Go de la première version n'a pas de source officielle : il est retiré.
  • La version de Docker Engine embarquée dans Docker Desktop 4.96.3, que les notes de version ne mentionnent pas.
  • Les prix en euros de Docker Pro, Team et Business, la page de tarifs consultée affichant des dollars.
  • Une tendance entre les enquêtes 2025 et 2026 de Stack Overflow, dont les options et les échantillons diffèrent.

Questions fréquentes

Docker est-il gratuit ?

Docker Engine, le moteur utilisé sur Linux, est open source sous licence Apache 2.0, selon sa page officielle. Docker Desktop est gratuit pour l'usage personnel, l'enseignement, l'open source non commercial et les entreprises de moins de 250 salariés et de moins de 10 millions de dollars de chiffre d'affaires annuel, selon la licence de Docker Desktop. Au-delà, il faut un abonnement Pro, Team ou Business.

Quelle différence entre une image et un conteneur ?

Une image Docker est un modèle en lecture seule, un conteneur est une instance qui s'exécute à partir de cette image, selon la présentation de Docker. Supprimer un conteneur ne supprime pas son image.

Faut-il écrire docker-compose ou docker compose ?

docker compose, sans tiret. L'ancien outil docker-compose (Compose v1) a été remplacé par Compose v2 et n'est plus maintenu, selon la page des produits retirés de Docker.

Docker pour débutants : par où commencer ?

Installez Docker Desktop ou Docker Engine, lancez docker run hello-world, puis suivez ce guide dans l'ordre : un conteneur Nginx, un Dockerfile pour votre application, puis un fichier Compose avec une base.


À propos de l'auteur

Abdelilah Ourti est ingénieur IA et architecte logiciel. Il conçoit et déploie des applications web et des systèmes d'IA, et publie sur NeurauTech des guides et des comparatifs destinés aux développeurs francophones. Ses autres articles sont réunis sur sa page auteur.

Méthode. Synthèse documentaire fondée exclusivement sur des sources publiques consultées le 25 octobre 2026 : documentation officielle de Docker (installation, notes de version, licence, build, Compose, volumes, réseau, ligne de commande), spécification Compose, page de tarifs de Docker, pages Docker Hub des images Node.js, PostgreSQL et Nginx, bonnes pratiques de l'image Node.js, enquêtes Stack Overflow 2025 et 2026. Les commandes n'ont pas été exécutées pour cet article. Les citations issues de sources en anglais sont traduites par nos soins. Aucun lien n'est affilié et aucune relation commerciale ne lie l'auteur aux éditeurs mentionnés.

Une erreur ou une version périmée ? Écrivez à [email protected] : l'article sera corrigé et la date de mise à jour modifiée.

Dernière mise à jour : 25 octobre 2026.

Image d'en-tête : İsmail Enes Ayhan (Unsplash License). Graphiques : NeurauTech, d'après Stack Overflow.

Top comments (0)