Kubernetes ou Docker : deux technologies de conteneurs à ne pas opposer
Docker empaquette les applications en conteneurs, Kubernetes les orchestre à grande échelle : deux briques complémentaires du pipeline DevOps, pas des rivales.
INSIGHTS ADSERVIO · DEVSECOPS

EN BREF
- Docker et Kubernetes ne répondent pas au même besoin : Docker empaquette une application et ses dépendances dans un conteneur portable, Kubernetes orchestre ces conteneurs à grande échelle.
- Docker Engine 29 s'appuie désormais par défaut sur le magasin d'images containerd et complète le runtime avec BuildKit, Compose et l'analyse de vulnérabilités Docker Scout.
- Kubernetes, en version 1.36 mi-2026, apporte découverte de services, autoscaling, auto-réparation, gestion des secrets et allocation dynamique de GPU pour les charges IA.
- Le retrait du dockershim en 2022 n'a rien changé pour les images : le standard OCI garantit qu'une image construite avec Docker s'exécute sur containerd ou CRI-O.
- Dans un pipeline DevOps moderne, Docker couvre la boucle locale du développeur et le build CI, Kubernetes la production via GitOps, les opposer n'a pas de sens.
SECTION 1
Kubernetes et Docker : pourquoi la question n'est pas de choisir
Docker et Kubernetes permettent aux équipes de déployer et de gérer des applications dans des environnements isolés, pour gagner en performance, en scalabilité et en résilience. Docker regroupe une application et ses dépendances dans un conteneur qui se déplace indépendamment de l'infrastructure, tandis que Kubernetes automatise le déploiement, la mise à l'échelle et la supervision de ces conteneurs sur des grappes de serveurs.
La comparaison « Kubernetes contre Docker » repose donc sur un malentendu : les deux technologies ne servent pas le même objectif, même si toutes deux relèvent de l'écosystème des conteneurs. L'une empaquette, l'autre orchestre. Les opposer revient à comparer un format de livraison et une chaîne logistique, la vraie question est de comprendre où chacune intervient dans le cycle de vie applicatif, et comment elles s'articulent.
Le malentendu persiste pourtant, entretenu par des années de comparatifs, car les deux outils se recouvrent partiellement : Docker propose avec Swarm une orchestration intégrée, et Kubernetes exécute sans difficulté des conteneurs qu'aucun outil Docker n'a produits. Mais dans la pratique des équipes, les rôles se sont clarifiés au point que la question n'est plus « lequel choisir » mais « comment bien les combiner », et à partir de quel moment l'orchestration devient réellement nécessaire.
SECTION 2
Docker en 2026 : bien plus qu'un moteur de conteneurs
Docker est une plateforme open source pour construire, distribuer et exécuter des applications conteneurisées. Un conteneur embarque l'application avec ses bibliothèques, sa configuration et ses dépendances : il partage le noyau du système d'exploitation hôte mais s'exécute de manière isolée, là où une machine virtuelle embarque un système complet. Cette légèreté explique la densité et la portabilité qui ont fait le succès du modèle : le même conteneur tourne sur le poste du développeur, dans la CI et en production. Cette promesse, construire une fois, exécuter partout, reste la proposition de valeur fondamentale du conteneur, plus de dix ans après que Docker l'a popularisée.
### L'architecture du moteur Docker
Le moteur s'articule autour d'un démon qui gère les objets Docker, d'une API REST qui lui transmet les instructions et d'une CLI avec laquelle le développeur interagit. Les images sont hébergées dans des registres, publics comme Docker Hub ou privés. Docker Engine 29, la version majeure déployée courant 2026, marque une étape d'alignement avec l'écosystème : le magasin d'images containerd devient le défaut pour les nouvelles installations, et le support des règles nftables fait son entrée en complément d'iptables.
### Un écosystème étendu au-delà du runtime
Autour du moteur, l'outillage s'est considérablement étoffé : BuildKit accélère les builds multi-plateformes avec cache partagé, Docker Compose décrit des environnements multi-conteneurs pour le développement local, et Docker Scout analyse les vulnérabilités des images dès la construction. Docker n'est plus seulement un runtime : c'est la boîte à outils de la boucle de développement conteneurisée.
Cette boucle locale outillée a une conséquence directe sur la production : plus l'image est construite proprement, builds multi-étapes, images de base minimales, dépendances épinglées, analyse de vulnérabilités intégrée dès le build, moins l'orchestrateur a de problèmes à gérer en aval. Une part décisive de la qualité d'un déploiement Kubernetes se joue en réalité dans le Dockerfile, bien avant que le cluster n'entre en scène.
SECTION 3
Kubernetes : l'orchestrateur devenu standard du cloud-native
Kubernetes (K8s) est la plateforme open source d'orchestration de conteneurs devenue le standard du cloud-native. Elle assure la découverte de services et la répartition de charge pour exposer les conteneurs au trafic, provisionne le stockage, orchestre les déploiements et les rollbacks de façon déclarative, redémarre ou remplace les conteneurs défaillants par auto-réparation, et chiffre les secrets comme les mots de passe, jetons et clés. Le projet publie trois versions mineures par an, la 1.36 est la version stable mi-2026,avec une politique de support sur les trois dernières.
Ces capacités reposent sur un principe commun : l'état désiré est décrit dans des manifestes déclaratifs, versionnés comme du code, et des boucles de contrôle rapprochent en permanence la réalité de cette description. Un pod disparaît ? Il est recréé. Un nœud tombe ? Ses charges sont replacées ailleurs. Cette réconciliation continue est ce qui permet d'exploiter des centaines de services avec des équipes de taille raisonnable, là où une gestion impérative exigerait une armée d'opérateurs.
### Le plan de contrôle et les nœuds de travail
Côté architecture, Kubernetes regroupe les conteneurs dans des pods, exécutés sur des nœuds fédérés en cluster. Le plan de contrôle pilote l'ensemble via le kube-apiserver (réception des requêtes), etcd (état distribué du cluster), le kube-scheduler (placement des pods) et le kube-controller-manager (boucles de réconciliation). Chaque nœud de travail exécute le kubelet, un runtime de conteneur conforme à la CRI et le kube-proxy pour le réseau. Ce modèle déclaratif, on décrit l'état voulu, le cluster converge vers lui, est ce qui distingue fondamentalement l'orchestration de la simple exécution.
@cite:introduction-a-l-orchestration-de-conteneurs
SECTION 4
Dockershim, containerd et la CRI : la fin du malentendu
Une partie de la confusion vient de l'histoire : Kubernetes a longtemps utilisé Docker comme runtime, via une couche d'adaptation appelée dockershim, retirée en 2022 avec Kubernetes 1.24. Depuis, les clusters s'appuient directement sur des runtimes conformes à la Container Runtime Interface (CRI), containerd ou CRI-O, et containerd est précisément le composant que Docker a extrait de son propre moteur puis donné à la communauté. Le retrait du dockershim n'a donc jamais signifié la fin de Docker : il a supprimé un intermédiaire devenu inutile. Ce détail d'architecture, largement incompris à l'époque, a pourtant alimenté des années de titres trompeurs annonçant la fin de Docker.
### Des images OCI portables partout
Pour les équipes, rien n'a changé d'essentiel : une image construite avec Docker respecte le standard OCI (Open Container Initiative) et s'exécute à l'identique sur containerd, CRI-O ou tout runtime conforme. C'est ce découplage entre le format d'image, standardisé, et le runtime d'exécution, interchangeable, qui rend le débat « Kubernetes ou Docker » obsolète : on construit avec l'un, on orchestre avec l'autre, et le standard garantit la continuité entre les deux.
Le même standard ouvre d'ailleurs la porte à des alternatives : Podman construit et exécute des conteneurs OCI sans démon central, Buildah et Kaniko produisent des images dans la CI sans privilèges élevés. La bonne nouvelle est que ce pluralisme ne fragmente pas l'écosystème : tout ce qui produit ou consomme des images OCI reste interopérable, et les compétences acquises sur un outil se transfèrent largement aux autres.
SECTION 5
Ce que la conteneurisation a changé pour les architectures
À mesure que la complexité des systèmes a grandi, les équipes ont eu besoin de méthodes plus efficaces pour gérer leurs applications. Les applications conteneurisées facilitent les déploiements et la mise à l'échelle, tout en offrant une portabilité qui affranchit du serveur sous-jacent. La conteneurisation a aussi permis de moderniser les applications monolithiques en les découpant en microservices déployables indépendamment, le mouvement de fond qui explique la place centrale prise par Docker, puis par Kubernetes.
En 2026, ce socle porte de nouveaux usages : Kubernetes est devenu la plateforme de référence pour les charges d'IA, avec l'allocation dynamique de ressources (DRA) désormais stable pour partager finement GPU et accélérateurs entre les charges d'entraînement et d'inférence. À l'autre extrémité du spectre, des distributions allégées comme K3s portent l'orchestration jusqu'à l'edge, et les plateformes internes construites au-dessus de Kubernetes masquent sa complexité aux équipes produit.
Cette généralisation a fait émerger un métier à part entière : l'ingénierie de plateforme, qui industrialise Kubernetes derrière des interfaces en libre-service, chemins balisés, catalogues de services, environnements à la demande, pour que les développeurs consomment l'orchestration sans en subir la complexité quotidienne. Le conteneur reste l'unité de base ; ce qui change, c'est l'épaisseur des abstractions construites au-dessus.
@cite:kubernetes-est-il-adapte-a-votre-besoin
SECTION 6
Docker et Kubernetes ensemble dans le pipeline DevOps
La répartition des rôles est aujourd'hui limpide. Docker excelle dans la boucle locale : construire une image reproductible, la tester avec Compose, la publier dans un registre. Kubernetes prend le relais pour l'exploitation : placement des charges, autoscaling horizontal et vertical, provisionnement de nœuds à la demande avec des outils comme Karpenter, résilience et gestion du cycle de vie. Docker Swarm existe toujours pour des besoins d'orchestration simples, mais l'écosystème, outillage, opérateurs, compétences, s'est massivement concentré sur Kubernetes. Sur le poste de travail, Docker Desktop embarque d'ailleurs un cluster Kubernetes local à activer d'un clic, signe que les deux mondes se pensent désormais ensemble plutôt qu'en rivaux.
### Du poste du développeur au cluster de production
Le flux type d'une équipe moderne enchaîne les deux : le développeur travaille en local avec Docker et Compose, la CI construit et signe l'image avec BuildKit, la publie dans le registre, puis un moteur GitOps comme Argo CD déploie la nouvelle version sur les clusters Kubernetes en comparant l'état déclaré dans Git à l'état réel. Chaque brique fait ce qu'elle fait le mieux ; c'est l'assemblage qui fluidifie le pipeline DevOps, pas le choix d'un camp.
@cite:bonnes-pratiques-kubernetes-en-production
SECTION 7
Choisir la bonne combinaison avec Adservio
Reste une vraie question de dimensionnement : toutes les organisations n'ont pas besoin de Kubernetes dès le premier jour. Une application au trafic stable peut vivre très bien sur des conteneurs Docker gérés par un service cloud managé, quand une plateforme multi-équipes à fort trafic justifie pleinement un cluster et son outillage. La complexité opérationnelle de Kubernetes se paie : elle doit être rentabilisée par un réel besoin d'échelle, de résilience ou de standardisation. Entre les deux, les offres intermédiaires, conteneurs serverless, plateformes applicatives managées, couvrent une large gamme de besoins sans exiger l'administration d'un cluster complet, et constituent souvent une étape de transition raisonnable.
Chez Adservio, nous accompagnons cette décision avec pragmatisme : évaluation du besoin réel, choix entre clusters managés et auto-hébergés, mise en place des bonnes pratiques de production, durcissement, GitOps, observabilité, maîtrise des coûts, et transfert de compétences aux équipes internes, pour que la plateforme serve la transformation numérique au lieu de devenir une fin en soi.
FAQ
Questions fréquentes
Kubernetes remplace-t-il Docker ?
Non. Docker est une plateforme de conteneurisation qui construit et empaquette les applications en conteneurs, tandis que Kubernetes orchestre ces conteneurs à grande échelle. Ce sont deux briques complémentaires du même pipeline, pas des solutions concurrentes.
Le retrait du dockershim a-t-il rendu Docker incompatible avec Kubernetes ?
Non. Depuis Kubernetes 1.24, les clusters utilisent des runtimes conformes à la CRI comme containerd ou CRI-O, mais les images construites avec Docker respectent le standard OCI et s'exécutent à l'identique sur tous ces runtimes.
Quelle est la différence entre un pod et un conteneur ?
Un conteneur empaquette une application avec ses dépendances. Un pod est l'unité de déploiement de Kubernetes : il regroupe un ou plusieurs conteneurs qui partagent le réseau et le stockage, et s'exécute sur un nœud du cluster.
Faut-il forcément adopter Kubernetes pour utiliser des conteneurs ?
Non. Une application au trafic stable peut tourner sur des conteneurs Docker via un service cloud managé. Kubernetes se justifie quand le besoin d'échelle, de résilience ou de standardisation multi-équipes compense sa complexité opérationnelle.
Pourquoi Kubernetes s'est-il imposé pour les charges d'IA ?
Parce que l'allocation dynamique de ressources (DRA), désormais stable, permet de partager finement GPU et accélérateurs entre entraînement et inférence, et que l'écosystème d'opérateurs et d'autoscaling gère naturellement ces charges intensives.
À PROPOS D'ADSERVIO
Adservio est un partenaire de transformation digitale AI-native : DSI augmentée par l'IA, ingénierie logicielle, DevOps, MLOps, cybersécurité et gouvernance IA.
Discutons de votre projet : hello@adservio.fr · adservio.fr/contact