Qu’est-ce que Docker?

Conteneurisation : principe

schéma-conteneur

La conteneurisation est une méthode qui permet de virtualiser, dans un conteneur, les ressources matérielles ‒ systèmes de fichiers, réseau, processeur, mémoire vive, etc. ‒ nécessaires à l’exécution d’une application. Dans cet espace sont aussi stockées toutes les dépendances des applications : fichiers, bibliothèques, etc. Pour déplacer les applications virtuelles d’un système d’exploitation à un autre, le conteneur se connecte à leur noyau (kernel), ce qui permet aux différents composants matériels et logiciels de communiquer entre eux (source). Là ou une VM classique émule une machine physique et nécessite un système d’exploitation virtualisé pour fonctionner, la conteneurisation utilise les ressources déjà présente sur l’hôte sans passer par la case virtualisation. Cela allège considérablement la taille du containeur par rapport à une VM classique, tout améliorant ses performances (on dit qu’un système virtualisé perds 7 à 8% de ses performances comparé à un système non virtualisé).

Différences entre Docker et les conteneurs traditionnels Linux

À l’origine, la technologie Docker a été créée sur la base de la technologie LXC, que la plupart des utilisateurs associent aux conteneurs Linux « traditionnels », mais elle s’est depuis émancipée. LXC était un outil de virtualisation léger très utile, mais il n’offrait pas une expérience à la hauteur pour les utilisateurs ou les développeurs. La technologie Docker permet non seulement d’exécuter des conteneurs, mais aussi de simplifier leur conception et leur fabrication, l’envoi d’images, le contrôle des versions d’image, etc.

Les limites de l’utilisation de Docker

De part son approche très modulaire (par couches de composants), la maintenance d’une application complexe peut vite devenir un calvaire. C’est là que des orchestrateurs comme Kubernetes interviennent afin de permettre de gérer des services applicatifs sur plusieurs conteneurs.

Catégories :

Mis à jour :