Aller au contenu

Qu'est-ce que Docker ? Conteneurs, images et workflows

Docker est une plateforme qui empaquete une application et ses dépendances dans une unité portable appelée conteneur. Contrairement à une machine virtuelle complète, le conteneur partage le noyau de l'hôte tout en isolant le système de fichiers, le réseau et les processus. Les équipes l'utilisent pour obtenir le même comportement en local, en CI et en production, et pour accélérer les déploiements sans « ça marche sur ma machine ».

En une phrase

Docker met votre appli et ses dépendances dans une boîte portable qui tourne pareil partout.

À retenir

  • Une image est un modèle immuable ; un conteneur est une instance en cours d'exécution.
  • Dockerfile décrit comment construire l'image ; Compose orchestre plusieurs services locaux.
  • L'isolation est plus légère qu'une VM : démarrage rapide, densité plus élevée sur un serveur.
  • La sécurité exige des images à jour, des utilisateurs non-root et des registres de confiance.

Fiche du terme

Docker
Conteneur Docker · Docker Engine · Image Docker
Terme anglais
Docker
Domaine
Cloud et DevOps
Catégorie
Conteneurs
Niveau
Débutant à intermédiaire

Que signifie exactement « Docker » ?

Docker popularise les conteneurs Linux en offrant un outil unique pour construire des images, les publier dans un registre et les lancer. Sous le capot, l'isolation s'appuie sur des namespaces, cgroups et un système de fichiers en couches (souvent OverlayFS).

Pour une PME montréalaise, Docker sert surtout à standardiser les environnements de développement et à préparer le terrain pour un déploiement cloud ou Kubernetes. On commence souvent par dockeriser une API Node ou Python, puis la base de données locale via Compose.

Docker n'est pas synonyme de Kubernetes : Docker construit et exécute des conteneurs ; Kubernetes les orchestre à grande échelle. Beaucoup d'équipes utilisent Docker Desktop en local et un runtime OCI en production.

Comment adopte-t-on Docker concrètement ?

  1. 01

    Écrire un Dockerfile minimal

    Partir d'une image de base officielle, copier le code, installer les dépendances et définir le processus de démarrage — multi-stage pour alléger l'image finale.

  2. 02

    Tester en local avec Compose

    Décrire API, base de données et cache dans un docker-compose.yml pour reproduire la stack complète sur chaque poste.

  3. 03

    Publier vers un registre

    Pousser les images versionnées (tag git SHA ou semver) vers Docker Hub, GHCR ou un registre privé.

  4. 04

    Intégrer la CI/CD

    Construire, scanner (vulnérabilités) et déployer l'image depuis le pipeline à chaque merge.

Exemple concret de Docker

Une agence web à Montréal dockerise son API NestJS et Postgres. Les développeurs lancent `docker compose up` et obtiennent la même stack en deux minutes. En CI, l'image est construite, scannée, puis déployée sur un VPS. Les écarts « marche chez moi » disparaissent ; le temps de onboarding d'un nouveau dev passe de une journée à moins d'une heure.

À quoi sert Docker ?

Environnements de dev homogènes

Toute l'équipe partage la même version de runtime, extensions et services satellites.

Pipelines CI reproductibles

Les tests tournent dans l'image exacte qui partira en production.

Microservices locaux

Composer plusieurs services (API, worker, Redis) sans installer chaque runtime à la main.

Migration vers le cloud

Une image OCI se déploie sur ECS, Cloud Run, AKS ou un cluster Kubernetes.

Avantages et limites de Docker

  • Portabilité forte entre postes, CI et cloud
  • Démarrage rapide par rapport aux machines virtuelles
  • Écosystème mature (Hub, Compose, BuildKit)
  • Facilite la parité dev/prod
  • Courbe d'apprentissage (réseau, volumes, multi-stage)
  • Images mal conçues deviennent lourdes ou peu sûres
  • Sur Windows/macOS, la VM sous-jacente ajoute de la complexité
  • Ne remplace pas à lui seul l'orchestration à grande échelle

Quelle différence entre Docker et une machine virtuelle ?

DockerMachine virtuelle (VM)
IsolationPartage le noyau de l'hôte ; isole processus et FSNoyau et OS invité complets
Taille / démarrageImages souvent en dizaines/centaines de Mo ; secondesGo d'espace ; démarrage plus lent
DensitéBeaucoup de conteneurs par hôteMoins d'invités par hyperviseur
Cas d'usageApps cloud-native, CI, microservicesWorkloads nécessitant un OS distinct ou fort isolation matériel

Pourquoi Docker compte pour une PME québécoise ?

Au Québec, les équipes compactes ne peuvent pas se permettre des environnements divergents ni des pannes liées à une dépendance oubliée. Docker réduit le risque opérationnel, accélère les mises en production et prépare une montée vers le cloud sans réécrire l'application. C'est un levier de productivité autant qu'un standard attendu par les recruteurs et partenaires techniques.

Questions fréquentes

Docker est-il gratuit ?

Docker Engine open source et les images communautaires le sont largement. Docker Desktop a des conditions de licence selon la taille de l'entreprise — vérifiez le site Docker.

Faut-il Kubernetes si on utilise Docker ?

Non. Beaucoup de PME déploient une ou quelques images via Compose, un PaaS ou un service managé. Kubernetes devient utile avec plusieurs services, autoscaling et haute dispo.

Comment sécuriser les images ?

Images officielles minimales, mises à jour régulières, scan de vulnérabilités, utilisateur non-root et secrets hors de l'image.

Docker remplace-t-il les tests ?

Non. Il garantit un runtime reproductible ; les tests unitaires, d'intégration et de sécurité restent indispensables.

Termes associés

Sources et références

Vous voulez dockeriser une API ou standardiser les environnements de votre équipe ? On peut cadrer Dockerfile, Compose et pipeline CI.

Parler de votre stack conteneurs
Glossaire