Docker
Il y a une quinzaine d’années, une jeune pousse du nom de dotCloud prenait une décision qui allait chambouler l’industrie informatique. En rendant public le code de son moteur de conteneurisation, l’entreprise offrait au monde Docker. La façon dont on construit, distribue et fait tourner des applications ne serait plus jamais la même. Pourtant, l’histoire des conteneurs ne commence pas avec Docker, loin de là.
Remontons à 1979. UNIX introduisait alors chroot, un mécanisme qui permettait de changer le répertoire racine d’un processus. Une brique élémentaire modeste qui posait les bases d’une idée : isoler le stockage des applications les unes des autres. FreeBSD franchit un cap en 2000 avec ses jails, fournissant une vraie virtualisation au niveau système. Linux-VServer emboîte le pas l’année suivante, suivi d’OpenVZ en 2005. Toutes ces technologies exploraient une piste similaire : partitionner les ressources système pour cloisonner les applications.
Mais aucune ne décollait vraiment. Trop complexes, trop rigides, elles restaient cantonnées à des usages de niche. LXC débarque en 2008 et pour la première fois, on dispose d’un gestionnaire complet de conteneurs qui s’appuie sur le noyau Linux standard, sans bidouilles ni modifications hasardeuses. La virtualisation légère est enfin accessible, du moins en théorie.
dotCloud utilisait LXC pour faire tourner sa plateforme cloud. Ses ingénieurs avaient bricolé un outil maison en Python, baptisé « dc », qui servait à manipuler les conteneurs LXC. Créer, démarrer, arrêter, exposer des ports réseau : les fonctions de base étaient là. Sauf que l’architecture posait problème. Les accès concurrents aux métadonnées des conteneurs créaient des conflits de verrous. Le système tenait debout, mais la fragilité guettait.
En 2013, Solomon Hykes et son équipe font le grand saut : ils libèrent leur moteur sous le nom de Docker. Docker ne se contente pas de rendre les conteneurs utilisables, il les rend simples. Le format d’image standardisé emballe une application avec tout ce dont elle a besoin. Les couches superposées en lecture seule permettent de partager les parties communes entre images. Le registre Docker Hub transforme le partage d’images en un jeu d’enfant.
L’architecture évolue vite. Docker s’émancipe de LXC dès 2014 en développant libcontainer, sa propre bibliothèque pour dialoguer avec le noyau Linux. Plus de dépendance externe, plus de contrôle, plus de stabilité. Les fondations techniques reposent sur les cgroups qui limitent les ressources, les namespaces qui isolent les processus, et des pilotes de stockage comme AUFS ou OverlayFS qui gèrent les couches d’images avec finesse.
La conception modulaire se précise. Le démon dockerd expose l’API et orchestre le tout. containerd prend en charge l’exécution des conteneurs. runc standardise leur création. Cette architecture en briques remplace ce qui ne convient pas, et adapte l’outil à des besoins spécifiques.
Le succès de Docker pose une question : comment garantir l’interopérabilité ? La Linux Foundation lance l’Open Container Initiative en 2015 pour établir des standards ouverts. Docker y contribue en donnant les spécifications de son format d’image et runc comme référence. Cette année naît aussi la Cloud Native Computing Foundation, qui hébergera Kubernetes, Prometheus et containerd. L’écosystème se structure, les standards s’imposent.
En avril 2015, Docker lève 95 millions de dollars lors d’un tour de table Series D mené par Insight Venture Partners. Des noms prestigieux rejoignent l’aventure : Goldman Sachs, Coatue, Northern Trust. Six mois plus tard, 18 millions supplémentaires s’ajoutent. La valorisation dépasse le milliard de dollars. Docker devient une « licorne », tous les poids lourds de la Silicon Valley misent sur cette technologie qui promet de révolutionner le déploiement logiciel. L’entreprise enchaîne les tours de financement jusqu’à atteindre près de 280 millions de dollars levés. En 2017, un nouveau tour rapporte 75 millions de plus, portant la valorisation à 1,3 milliard.
Docker bouleverse les pratiques. Une application mise en conteneur se comporte de la même manière partout : sur la machine du développeur, sur les serveurs de test, en production. Les ressources consommées restent raisonnables, bien loin de la lourdeur des machines virtuelles traditionnelles. La densité sur les serveurs s’améliore mécaniquement.
L’entreprise développe aussi Docker Swarm, son orchestrateur natif. L’idée semble tenir la route : gérer des flottes entières de conteneurs répartis sur plusieurs machines en conservant la simplicité de l’API Docker. Quelques commandes suffisent pour déployer un cluster. Pas de courbe d’apprentissage abrupte, juste une extension naturelle de ce que les développeurs connaissent déjà. En 2016, Docker intègre Swarm directement dans le moteur avec le « Swarm Mode ». C’est dans la boîte, prêt à l’emploi.
Sauf que Google avait libéré Kubernetes en 2014. Fruit d’une décennie d’expérience avec Borg, son système interne d’orchestration, Kubernetes grandit à une vitesse folle. La communauté open source s’enflamme. Les trois grands fournisseurs cloud adoptent Kubernetes : Google bien sûr, mais aussi Amazon avec EKS et Microsoft avec AKS. VMware et Red Hat s’y rallient. En 2017, la bataille est déjà perdue pour Docker Swarm. La direction de Docker l’admet en annonçant que la plateforme prendra en charge Kubernetes. Un aveu d’échec à peine déguisé.
Les tensions montent en interne. Trois directeurs généraux en une seule année. L’entreprise navigue à vue. Elle a deux activités distinctes qui fonctionnent selon des logiques incompatibles : d’un côté Docker Desktop et Docker Hub, prisés des développeurs mais difficiles à monétiser; de l’autre Docker Enterprise, une suite d’outils pour les grandes entreprises avec orchestration intégrée, contrats juteux, mais une complexité croissante.
En novembre 2019, Mirantis, spécialiste du cloud qui cherchait sa voie après l’essoufflement d’OpenStack, rachète toute l’activité entreprise de Docker. La transaction englobe Docker Enterprise Engine, Docker Trusted Registry, Docker Unified Control Plane, le CLI, et 750 clients grands comptes dont un tiers du Fortune 100. Trois cents employés rejoignent Mirantis. Le montant n’est pas divulgué, mais il est dérisoire comparé aux 280 millions levés. Les observateurs parlent d’une vente pour une bouchée de pain.
Le même jour, Docker annonce 35 millions de dollars de financement de la part de Benchmark Capital et Insight Partners. Scott Johnston, directeur des produits depuis 2014, devient le troisième directeur général de l’année. La société se restructure, se recentre sur les développeurs, garde Docker Desktop et Docker Hub. L’équipe passe de plusieurs centaines de personnes à une soixantaine. Beaucoup y voient la fin d’une époque. Les commentateurs déclarent Docker mort.
Docker et Mirantis conviennent de collaborer sur le développement open source. Mirantis s’engage à supporter Docker Swarm au moins deux ans, mais le message est clair : Kubernetes sera l’orchestrateur principal. L’acquisition des actifs Docker Enterprise permet à Mirantis de se positionner face aux géants comme VMware et Red Hat. Deux ans après le rachat, Mirantis annonce un chiffre d’affaires annuel dépassant 100 millions de dollars, dont la moitié provient des actifs rachetés à Docker. La greffe a pris.
De son côté, Docker renaît de ses cendres. Concentré sur son cœur de métier, l’entreprise retrouve une trajectoire de croissance. Le revenu annuel récurrent grimpe de 6 millions en 2020 à 50 millions en 2021, puis à plus de 135 millions en 2023. En mars 2022, Docker lève 105 millions de dollars lors d’un tour Series C mené par Bain Capital Ventures, avec une valorisation de 2,1 milliards. L’effectif double pour atteindre 150 personnes. En 2021, Docker Business voit le jour, une offre pour les grandes entreprises, et les conditions de licence de Docker Desktop changent. Le pari du recentrement paie.
Ce qui frappe dans l’histoire de Docker, c’est moins l’innovation technique pure que la démocratisation d’une idée. Les conteneurs existaient, mais personne ne les utilisait vraiment. Docker les a rendus accessibles, presque évidents. Cette simplification a ouvert la voie aux architectures microservices, accéléré le mouvement DevOps, transformé la façon dont on pense le déploiement logiciel.
Les composants se sont séparés, donnant aux utilisateurs le choix des éléments qui leur conviennent. De nouveaux outils apparaissent sans cesse pour optimiser la construction d’images, renforcer la sécurité, orchestrer les conteneurs. L’héritage de Docker tient dans les standards ouverts qu’il a établis, dans les fondations qu’il a posées pour l’industrie, et dans sa capacité à se réinventer après avoir frôlé la disparition. Docker Inc. existe toujours, plus petit mais viable, tandis que la technologie Docker irrigue l’ensemble de l’écosystème cloud moderne.