Docker (logiciel)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Docker (homonymie).
Docker
Image illustrative de l'article Docker (logiciel)

Développeur Solomon Hykes,
Docker, Inc.
Première version
Dernière version 1.7.0 ()
État du projet En développement actif
Écrit en Go
Environnement GNU/Linux
Type Gestionnaire de containers
Politique de distribution Gratuit
Licence Licence Apache 2.0
Site web docker.com

Docker est un logiciel open source qui automatise le déploiement d'applications dans des conteneurs logiciels[1]. Selon la firme de recherche sur l'industrie 451 Research, « Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n'importe quel serveur Linux ». Ceci permet d'étendre la flexibilité et la portabilité d’exécution d'une application, que ce soit sur la machine locale, un cloud privé ou public, une machine nue, etc. [2]

Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution de virtualisation qui exécute les processus de façon isolée[3]. Docker utilise LXC, cgroups, et le noyau Linux lui-même[2]. Contrairement aux machines virtuelles traditionnelles, un conteneur Docker n'inclut pas de système d'exploitation, s'appuyant sur les fonctionnalités du système d’exploitation fournies par l'infrastructure sous-jacente[4].

La technologie de conteneur de Docker peut être utilisée pour étendre des systèmes distribués de façon à ce qu'ils s'exécutent de manière autonome depuis une seule machine physique ou une seule instance par nœud. Cela permet aux nœuds d'être déployés au fur et à mesure que les ressources sont disponibles, offrant un déploiement transparent et similaire aux Paas pour des systèmes comme Apache Cassandra, Riak ou d'autres systèmes distribués[5].

Vue d’ensemble[modifier | modifier le code]

Docker permet la mise en œuvre de containers s'exécutant en isolation, via une API de haut-niveau. Construit sur des capacités du noyau Linux (surtout les cgroups et espaces de nommage), un container Docker, à l'opposé de machines virtuelles traditionnelles, ne requiert aucun système d'exploitation séparé et n'en fournit aucun. Il s'appuie plutôt sur les fonctionnalités du noyau et utilise l'isolation de resources (CPU, mémoire, I/O, connexions réseau etc.) ainsi que des espaces de noms séparées pour isoler le système d'exploitation tel que vu par l'application. Docker accède aux capacités de virtualisation du noyau Linux, soit directement à travers la bibliothèque libcontainer (disponible depuis Docker 0.9), soit indirectement via libcrt, LXC (Linux Containers) ou systemd-nspawn.

Utiliser Docker pour créer et gérer des containers peut simplifier la mise en œuvre de systèmes distribuées en permettant à de multiples applications, tâches de fond et autres processus de s'exécuter de façon autonome sur une seule machine physique ou à travers un éventail de machines virtuelles. Ceci permet de déployer des nœuds en tant que resources sur besoin, fournissant ainsi une plateforme de déploiement de style PAAS et la scalabilité de systèmes tels Apache Cassandra, MongoDB ou Riak, ainsi que la simplification de la création et maintenance de queues de tâches ou autres systèmes distribuées.

Histoire[modifier | modifier le code]

Docker a été développé par Solomon Hykes pour un projet interne de dotCloud, une société proposant une plate-forme en tant que service, avec les contributions d'Andrea Luzzardi et Francois-Xavier Bourlet, également employés de dotCloud. Docker est une évolution basée sur les technologies propriétaires de dotCloud, elles-mêmes construites sur des projets open-source.

Docker a été distribué en tant que projet open source à partir de mars 2013[3].

Au 18 novembre 2013, le projet a été mis en favoris plus de 7 300 fois sur GitHub (14e projet le plus populaire), avec plus de 900 forks et 200 contributeurs[6].

Au 9 mai 2014, le projet a été mis en favoris plus de 11 769 fois sur GitHub, avec plus de 1 912 forks et 423 contributeurs[6].

Intégration avec d'autres systèmes[modifier | modifier le code]

L'intégration de Docker a été faite avec les outils de gestion d'infrastructures suivants :

Le 19 septembre 2013, Red Hat et Docker ont annoncé une collaboration concernant Fedora, Red Hat Enterprise Linux et Openshift[13]. En mai 2015, le constructeur de NAS Synology intègre Docker dans son logiciel interne DSM 5.2.

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]