Outil CLI
containerd/nerdctl avatar
containerd/nerdctl

nerdctl : ce que le dépôt permet réellement

containERD CTL - CLI compatible Docker pour containers, avec prise en charge de Compose, Rootless, eStargz, OCIcrypt, IPFS, ...

10 375 étoiles826 forksGoApache-2.0
GitHub

En bref

De quoi s’agit-il ?
Analyse de containerd/nerdctl, de son fonctionnement documenté, de son installation et des points qui bornent son usage.
À qui s’adresse-t-il ?
nerdctl présente les fonctionnalités avancées de containerd via une interface compatible Docker, et le README couvre l'installation, l'utilisation et le développement. Le projet est sous licence Apache 2.0.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Une CLI compatible Docker pour containerd

nerdctl est une interface en ligne de commande que le README décrit comme compatible Docker, ce qui signifie qu'elle vise à offrir la même interface utilisateur et la même expérience que Docker tout en fonctionnant sur containerd. Il s'agit d'un sous-projet non central de containerd, développé sous l'organisation containerd mais ne faisant pas partie du runtime central. L'outil prend en charge Docker Compose via nerdctl compose up et peut activer plusieurs fonctionnalités avancées de containerd. Le dépôt est écrit en Go et est sous licence Apache 2.0. Selon les métadonnées du dépôt, il compte 10 279 étoiles et 810 forks, avec 360 problèmes ouverts. Le README ne fournit aucune information sur l'état de préparation à la production ou l'adoption spécifique par les utilisateurs.

Chemins d'installation et composants requis

Les binaires sont publiés sur la page des versions GitHub. Pour nerdctl run, les plugins CNI sont requis ; le README recommande la version v1.1.0 ou ultérieure. BuildKit est facultatif pour nerdctl build, et la version v0.11.0 ou ultérieure est recommandée. Le mode rootless nécessite RootlessKit v0.10.0 ou ultérieur, avec v3.0.0 ou ultérieur recommandé. L'archive nerdctl-full regroupe ces dépendances, contrairement à l'archive standard. Sous Linux, Homebrew peut installer nerdctl ; sous macOS, le projet Lima fournit une VM Linux avec intégration nerdctl ; sous Windows, Scoop est pris en charge. Le README mentionne également l'exécution de nerdctl dans Docker et documente FreeBSD dans un fichier séparé. Le README note que les conteneurs Linux fonctionnent connus sur WSL2, et les conteneurs Windows bénéficient d'un support expérimental.

Fonctionnalités au-delà de ce que Docker propose

Le README énumère les principales fonctionnalités absentes de Docker : le tirage d'images à la demande (lazy-pulling) avec les snapshotters Stargz, Nydus, OverlayBD ou SOCI ; le chiffrement et le déchiffrement d'images via ocicrypt ; la distribution d'images P2P via IPFS, totalement facultative et ne se connectant à un réseau P2P que si l'utilisateur installe et exécute un démon IPFS ; l'intégration cosign pour la signature et la vérification d'images ; et les conteneurs rootless accélérés avec bypass4netns. Les fonctionnalités mineures incluent le support des espaces de noms avec nerdctl --namespace=<NS>, la sauvegarde double format Docker/OCI, l'importation OCI, le rootfs non-image, plusieurs réseaux, les jails FreeBSD, le tirage multi-plateforme, la prise en charge des profils AppArmor pour les conteneurs rootless et la compatibilité systemd. Il existe également une fonctionnalité pour inspecter la configuration OCI brute. La section motivation indique que l'objectif est de faciliter l'expérimentation des fonctionnalités de containerd qui ne sont pas encore dans Docker.

Exemples d'utilisation du README

Le README fournit plusieurs exemples de commandes. Pour exécuter un conteneur sur le réseau CNI bridge par défaut (10.4.0.0/24), utilisez nerdctl run -it --rm alpine. La construction d'une image avec BuildKit se fait avec nerdctl build -t foo /some-dockerfile-directory, et la sortie peut être envoyée dans un répertoire local avec nerdctl build -o type=local,dest=. . Les piles Compose sont démarrées avec nerdctl compose -f ./examples/compose-wordpress/docker-compose.yaml up. Pour le débogage Kubernetes, nerdctl --namespace k8s.io ps -a liste les conteneurs, et nerdctl --namespace k8s.io build -t foo /some-dockerfile-directory construit une image pour Kubernetes local, après quoi kubectl apply -f - avec un manifeste de pod est utilisé. La lecture des journaux est expérimentale : nerdctl --namespace=k8s.io logs -f <container-id>. Le mode rootless commence par containerd-rootless-setuptool.sh install, puis nerdctl run -d -p 8080:80 --name nginx nginx:alpine.

Comparaison avec des outils similaires

Le README compare nerdctl à ctr, la CLI native de containerd, qui est incompatible avec Docker et manque de mappage de ports, de politiques de redémarrage, d'assistants d'identification, de journaux, de build et de compose. crictl est conçu pour CRI et ne prend pas en charge les fonctionnalités non-CRI. Le k3c v0.2 abandonné nécessitait un démon supplémentaire, Rancher Kim nécessite Kubernetes et se concentre sur la gestion d'images, et PouchContainer nécessite également un démon supplémentaire. nerdctl est positionné comme une interface compatible Docker qui comble les lacunes pour les utilisateurs venant de Docker tout en exposant les capacités spécifiques de containerd. Le README ne fournit pas de comparaisons de performances ni de données de référence.

Développement, gouvernance et licence

nerdctl est un sous-projet non central de containerd, donc la gouvernance, les mainteneurs et les directives de contribution sont hébergés dans le dépôt containerd/project. Pour compiler à partir des sources, exécutez make && sudo make install ; l'en-tête go.mod spécifie la version minimale de Go. Le README note que go install est possible mais déconseillé car il ne remplit pas les chaînes de version dans nerdctl version. Les instructions de test se trouvent dans docs/testing/README.md. Les contributions nécessitent un Developer Certificate of Origin, signé avec git commit -s. Le projet est sous licence Apache 2.0, qui accorde une licence perpétuelle, mondiale, non exclusive, gratuite et irrévocable pour reproduire, préparer des œuvres dérivées, afficher, exécuter, sous-licencier et distribuer l'œuvre. L'extrait de licence ne mentionne aucune obligation de garantie ou de support.

Conclusion éditoriale

nerdctl présente les fonctionnalités avancées de containerd via une interface compatible Docker, et le README couvre l'installation, l'utilisation et le développement. Le projet est sous licence Apache 2.0. Comme de nombreuses fonctionnalités sont optionnelles et dépendent de composants séparés, vérifiez la documentation actuelle avant de vous fier à des comportements spécifiques. Avant décision, exécutez nerdctl compose up puis examinez le fichier ou la sortie docs/rootless.md afin de vérifier le comportement réellement utile à votre projet.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté