Prendre rendez-vous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. Containerd : le runtime de conteneurs sous le capot de Kubernetes

Conteneurs
Kubernetes
DevOps

Containerd : le runtime de conteneurs sous le capot de Kubernetes

26 février 2026

5 min de lecture

Sommaire
Introduction
Plan
De Docker à containerd : une histoire de modularité
Architecture et plugins
CLI : ctr et nerdctl
Configuration pour Kubernetes
Comparaison : containerd vs CRI-O vs Docker
Perspectives
Sources
Conclusion

Introduction

Depuis le déploiement massif de Kubernetes en production, containerd s'est imposé comme le runtime de conteneurs par défaut. Mais pourquoi ? Parce qu'il offre ce que Docker ne peut pas : une architecture légère, modulaire, et taillée spécifiquement pour les environnements d'orchestration moderne.

Si vous administrez une infrastructure de conteneurs chez vous ou chez un client, vous rencontrez certainement containerd sans le savoir. Kubernetes 1.24 a supprimé le support natif de Docker (dockershim) en mai 2022. Depuis, containerd règne sans partage sur les clusters de production.

Cet article vous plonge dans les entrailles de containerd : son histoire, son architecture, ses outils, et comment le configurer pour Kubernetes.

Plan

  1. De Docker à containerd, L'histoire d'une extraction
  2. Architecture et plugins, Comprendre le design modulaire
  3. Les CLI : ctr et nerdctl, Interagir avec les conteneurs
  4. Configuration pour Kubernetes, Le fichier config.toml
  5. Comparaison : containerd vs CRI-O vs Docker
  6. Perspectives et ressources

De Docker à containerd : une histoire de modularité

Avant 2017, Docker était une boîte noire monolithique. Moby Project a ouvert les portes, mais c'est l'extraction de containerd qui a révolutionné l'écosystème.

L'extraction de Docker (2017)

Docker Inc. a reconnu une vérité inconfortable : les équipes d'infrastructure ne voulaient pas de l'ensemble Docker, juste du runtime. Les fonctionnalités daemon, API, build, networking, tout ça, c'était du bruit pour Kubernetes.

En février 2019, containerd atteint le statut CNCF Graduated. C'était officiel : containerd était l'avenir du runtime de conteneurs.

Pourquoi cette extraction ?
  • Légèreté : 65 MB au lieu de 200+ MB pour Docker
  • Stabilité : une responsabilité unique = moins de bugs
  • Contrôle : pas de dépendances sur les décisions de Docker Inc.
  • Flexibilité : architecture plugin pour les runtimes alternatifs

Architecture et plugins

Containerd repose sur une architecture plugin-first. Chaque fonction critique est un plugin.

Les trois piliers
# /etc/containerd/config.toml
[grpc]
  address = "/run/containerd/containerd.sock"

[plugins]
  # Plugin snapshotter (gestion des couches de conteneurs)
  [plugins."io.containerd.snapshotter.v1.overlayfs"]
    root_path = "/var/lib/containerd/snapshots"

  # Plugin content store (blob storage)
  [plugins."io.containerd.content.v1.content"]
    root = "/var/lib/containerd/content"

  # Plugin CRI (Container Runtime Interface)
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "registry.k8s.io/pause:3.8"

Snapshotter : gère les couches du système de fichiers (overlayfs par défaut, mais supporte btrfs, zfs).

Content store : stockage immutable des images (blobs, digests SHA256).

CRI plugin : l'interface standard pour Kubernetes (Pod, Container, Image services).

OCI compliance

Containerd respecte la Open Container Initiative (OCI). Le runtime par défaut est runc, mais vous pouvez injecter crun (C), kata (lightweight VMs), ou gVisor (sandbox).


CLI : ctr et nerdctl

Deux interfaces existent.

ctr : bas niveau, brut
# Lister les images
ctr images ls

# Tirer une image
ctr images pull docker.io/library/alpine:latest

# Créer et lancer un conteneur (plus complexe)
ctr run --rm docker.io/library/alpine echo "Hello"

ctr est complet mais verbeux. Pensez-y comme du strace pour conteneurs.

nerdctl : Docker-compatible
# Interface Docker, mais avec containerd
nerdctl ps
nerdctl images
nerdctl run -it alpine /bin/sh
nerdctl build -t myapp .
nerdctl push docker.io/myrepo/myapp

nerdctl est ce que vous voulez vraiment. C'est Docker sans Docker, 99 % compatible.


Configuration pour Kubernetes

Kubernetes parle à containerd via le plugin CRI. Voici une config typique :

version = 2

[plugins."io.containerd.grpc.v1.cri"]
  sandbox_image = "registry.k8s.io/pause:3.9"
  [plugins."io.containerd.grpc.v1.cri".containerd]
    snapshotter = "overlayfs"
    default_runtime_name = "runc"

    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
      privileged_without_host_devices = false

[plugins."io.containerd.grpc.v1.cri".cni]
  bin_dir = "/opt/cni/bin"
  conf_dir = "/etc/cni/net.d"

Démarrer et vérifier :

# Redémarrer après édition
sudo systemctl restart containerd

# Vérifier que CRI fonctionne
crictl --runtime-endpoint unix:///run/containerd/containerd.sock ps

Comparaison : containerd vs CRI-O vs Docker

CritèrecontainerdCRI-ODocker
CNCF StatusGraduatedIncubatingN/A
Taille~65 MB~48 MB200+ MB
ScopeGeneral purpose + KubernetesKubernetes onlyDev + Prod
CLIctr (low-level)crictldocker
OCI Compliance✅ Oui✅ Oui✅ Oui
Snapshotteroverlayfs, btrfs, zfsoverlayfsoverlayfs
Runtimes alternatifsrunc, crun, katarunc, crun, katalimité
Kubernetes 1.27+DéfautAlternatifSupprimé

Verdict : containerd pour 95 % des cas. CRI-O si vous cherchez quelque chose de super léger et dédié à Kubernetes.


Perspectives

  • Kubernetes Introduction, Comprendre l'orchestration au-delà du runtime
  • Hardening Docker, Sécuriser vos conteneurs en production
  • Podman 2026, L'alternative daemonless à containerd

Sources

  • containerd.io
  • GitHub: containerd/containerd
  • nerdctl GitHub
  • OCI Runtime Specification
  • Kubernetes CRI Documentation

Conclusion

Containerd a maturé en devenant le runtime par défaut de Kubernetes, et c'est mérité. Son architecture modulaire, sa légèreté et son respect des standards OCI en font la brique de base de tout cluster moderne.

Chez SHPV, nos infrastructures de conteneurs reposent sur cette fondation éprouvée. Que vous déployiez une application en Kubernetes ou que vous orchestriez des conteneurs directement, comprendre containerd (ses plugins, sa configuration, ses outils) c'est comprendre comment vos applications tournent en production.

La prochaine fois que vous verrez un Pod Kubernetes au travail, vous saurez que c'est containerd, en coulisses, qui fait toute la plomberie.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

Kubernetes en 2026 : comprendre les bases de l'orchestration de conteneurs
Kubernetes
Conteneurs
DevOps

Kubernetes en 2026 : comprendre les bases de l'orchestration de conteneurs

Guide complet pour débuter avec Kubernetes : concepts fondamentaux, architecture, cas d'usage. Découvrez pourquoi 93% des entreprises l'adoptent et quand préférer Docker Swarm.

19 févr. 2026

Lire plus

Portainer CE : administrer Docker et Kubernetes depuis une interface web
Conteneurs
DevOps

Portainer CE : administrer Docker et Kubernetes depuis une interface web

Installer et configurer Portainer CE pour gérer vos conteneurs Docker et clusters Kubernetes via une interface web intuitive et centralisée.

20 mars 2026

Lire plus

Nomad : l'alternative à Kubernetes pour les équipes qui veulent rester simples
Conteneurs
DevOps

Nomad : l'alternative à Kubernetes pour les équipes qui veulent rester simples

Comparaison factuelle entre HashiCorp Nomad et Kubernetes : dans quels cas Nomad est un meilleur choix que K8s pour orchestrer vos workloads.

14 mars 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Prendre rendez-vousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr