Docker : Comment ça fonctionne ?

Après un premier article sur comment installer docker ainsi qu’un autre sur quelques commandes docker je me suis dis qu’un article sur qu’est-ce que docker vous intéresserez.

Docker quesako ? !

Docker est un logiciel Libre développé par l’ingénieur Franco-américain Salomon Hykes, il permet de lancer des applications dans des containeurs logiciels.
Distribué pour la première fois en Mars 2013, le logiciel est rapidement devenu une des briques essentielles du devops.

D’accord et du coup ca fait quoi ?

Ne soyons pas trop pressé et commençons par expliquer le principe d’un containeur. Un containeur Linux est un processus ou un ensemble de processus isolé du reste du système Linux. Concrètement un containeur contient tous les fichiers nécessaires à l’exécution des-dit processus pour permettre une plus grande portabilité ainsi qu’une grande scalabilité.

On est proche du principe d’une machine virtuelle sauf qu’un containeur n’embarque pas l’OS, il repose dessus. Ça simplifie grandement les choses quand on a pas à manipuler des machines virtuelles de 30Go ou plus, uniquement compatible avec des ESXi en version 5.5.

Comparatif docker vs ESXi
Comparatif docker vs ESXi

Et Docker la dedans ?

Docker était, au départ, basé sur les containeurs standard de linux, LXC, et à ajouter une expérience utilisateur plus satisfaisante. C-à-d qu’on peut simplement créer, partager, récupérer des images, déplacer des containeurs, …

Pour parler plus technique, LXC se base sur un système init gérant diverses processus là ou docker décompose les applications en processus distincts. Pour information, aujourd’hui docker ne se base plus sur lxc pour fonctionner.

Comparatif docker vs LXC
Comparatif docker vs LXC

Ok mais concrètement qu’est ce qu’on peut faire ?

Concrètement tu vas l’installer sur un serveur linux, télécharger une image contenant ton logiciel que tu souhaite utiliser (httpd, nginx, shibboleth, …), la configurer, la dupliquer si besoin, créer des versions, la réinstaller en cas d’erreur, la partager et la réinstaller simplement sur un autre serveur, etc…

Et ca fonctionne que sur linux ?

Non, il fonctionne aussi sur macos et depuis 2016 sur windows.

Pour conclure, docker a simplifié quelque chose qui existait déjà mais était très complexe. La première fois que j’en ai entendu parlé j’ai tout de suite pensé aux « zones » de solaris. Mais créer et utiliser une zone était lourd et complexe, difficilement déplaçable et certainement pas user-friendly. Les zones de solaris ou lxc de linux étaient très centrées sur une approche OS des containeurs là où docker a une approche plus centrée applicative. Et il a ajouté un répertoire d’image, les dockersfiles permettant de configurer rapidement et simplement une image pour l’adapter à nos besoins, des outils et des commandes spécifiques, une gestion simplifiée du réseau ainsi qu’une communauté nombreuse et réactive.

Sources :

redhat

putain de code

wanadev

linufr.org

mondedie.fr

reddit

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *