Qu'est-ce que Docker ?

Qu'est-ce que Docker ?

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 a cartonné au point de devenir 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é.

Techniquement on est proche du principe d'une machine virtuelle sauf que contrairement à celle-ci un containeur Linux n'embarque pas l'OS, il repose dessus. Ca 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.

Et Docker la dedans ?

Docker était, au départ, basé sur les containeurs standard de linux, LXC, et y a 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.

Ok, c'est complexe tout ca mais concrètement qu'est ce qu'on peut faire ?

Concrètement tu vas installer docker 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 hébergeant docker etc…

Et ca fonctionne que sur linux ?

Non docker 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 docker a ajouté un répertoire d'image, les dockersfiles permettant de configurer rapidement et simplement une image pour l'adapter à nos besoins, les outils et commandes docker, une gestion simplifiée du réseau ainsi qu'une communauté nombreuse et réactive.

Sources :
https://www.redhat.com/fr/topics/containers/what-is-docker
https://putaindecode.io/articles/introduction-a-docker/
https://www.wanadev.fr/23-tuto-docker-comprendre-docker-partie1/
https://linuxfr.org/news/la-folie-docker
https://mondedie.fr/d/7646-docker-vs-lxc
https://www.reddit.com/r/docker/comments/2m4690/docker_vs_solaris_zones/

Ajouter un commentaire

Related Posts