2.2.3 Les Dockers
Docker, l'une des technologies les plus importantes du moment
est un produit développé par la société du
même nom Docker inc basé au USA. Initialement
développé par un ingénieur français,
Solomon Hykes 14, le produit a été
dévoilé en mars 2013. Depuis cette date, Docker est devenu le
soft à la mode. Son potentiel révolutionne notre façon de
construire, de déployer et

13. Cinquième version majeure de Mac OS X, le
système d'exploitation d'Apple pour les ordinateurs Macintosh
14. Solomon Hykes, né à New York en 1983, est un
créateur d'entreprises franco-américain, vivant dans la Silicon
Valley, et le créateur d'un concept à l'origine d'un ensemble de
logiciels, Docker
22 IAI Gabon
c~Tchuenché Rodrigue Élève Ingénieur
En Informatique 22
de distribuer les applications. Les environnements de
développement sont souvent compliqués, difficile de garder la
cohérence entre les différents membres de l'équipe. Une
solution possible est de construire des machines virtuelles
pré-configurées disponibles pour toute l'équipe. Docker
peut sur ce point apporter des solutions en terme de rapidité et de
légèreté par rapport aux VM.
2.2.3.1 C'est quoi un Docker?
Docker permet de créer des environnements virtuels
appelés « containers » de manière
à isoler les applications. Docker n'est pas une machine virtuelle (VM)
à proprement parler, il repose sur le noyau Linux et sur une
fonctionnalité : les containers, que nous connaissons sur le nom de
LXC 15. En plus du LXC linux, un troisième composant est
requis, cgroups16 qui va avoir pour objectif de
gérer les ressources (utilisation de la RAM, CPU entre autres).
Bien que utilisant LXC et le cgroup qui sont natifs à
linux, l'équipe de Docker inc a récemment mis en oeuvre une
version Docker pour les systèmes Windows plus précisément
à partir de Windows Server 2016. Docker est donc disponible pour la plus
part des OS : Linux, Windows, Mac OS X pour les processeurs Intel et AMD x86,
x64 et les processeurs ARM (comme le cas du Raspberry Pi que nous utilisons
dans notre étude).
2.2.3.2 Difference entre Docker et Machine Virtuelle
(VM)
Docker ne se comporte pas de la même manière
qu'une machine virtuelle, Une Machine Virtuelle isole tout un système
(son OS), et dispose de ses propres ressources. Dans le cas du Docker, le noyau
va partager les ressources du système hôte et interagir avec le(s)
container(s). Le Docker partage le noyau Linux de la machine hôte et
«isole» les processus qui sont exécutés à
l'intérieur du container. On n'a donc pas besoin de la couche Operating
System complète comme dans une VM ce qui rend un Docker très
léger, très maniable et facilement voyageable dans un
environnement de cloud computing.(voir figure 2.14)
2.2.3.3 Environnement et notions de base
Docker
Trois éléments essentiels forment les bases de la
philosophie d'un Docker :
* Docker Image : c'est un template
qui va servir directement ou indirectement à produire d'autres Docker
Image ou des Docker containers.
* Docker Containers : c'est
«l'exécutable» obtenu à partir d'une Docker Image. On
peut le démarrer, l'arrêter ou le détruire.
* Docker Registry ou Docker
Hub : c'est le repository des Docker Images. On peut y
télécharger des Docker Images créé par d'autres
mais également y stocker les siennes.
15. LXC, Linux containers est un système de
virtualisation, utilisant l'isolation comme méthode de cloisonnement au
niveau du système d'exploitation.
16. cgroups (control groups) est une fonctionnalité du
noyau Linux pour limiter, compter et isoler l'utilisa-tion des ressources
(processeur, mémoire, utilisation disque, etc.).

23 IAI Gabon
c~Tchuenché Rodrigue Élève Ingénieur
En Informatique 23
FIGURE 2.14 - Machine Virtuelle Vs Docker
|