You are on page 1of 13

DOCUMENTATION DOCKER

I. Qu’est-ce que DOCKER ?
II. Les différences avec la virtualisation
III. Co e t l’i stalle ?
IV. Utiliser les containers
V. Comment gérer le problème de persistance ?
VI. Comment mettre en ligne notre container ?
VII. GLPI
VIII. DNS
IX. EON
X. NAS

I. Qu’est-ce que DOCKER ?
DOCUMENTATION DOCKER

Do ke est u e ou elle te h ologie de i tualisatio d’appli atio s e pa la so i t du e o ,
développée par un ingénieur français et dévoilée en mars 2003. Cette technologie est proposée aux
professionnels comme au grand public. Docker permet de créer des environnements, des conteneurs
virtuels qui tournent sur une machine de façon isolé mais qui utilisent les mêmes ressources.

C’est-à-di e u’o a isole os appli atio s du o au de la achine, et ensuite on pourra les déplacer sur de
nouvelles machines vierges sans avoir à tout réinstaller.

Par exe ple, sur u e a hi e Li ux, o eut a oir u ser eur e , o a ré upérer u e i age d’u ser eur
e apa he2 sur le Do ker Hu le agasi d’i ages et o a l’i staller sur otre a hi e.

Donc plus on a de ressources sur une machine, plus on pourra y créer de conteneurs.

• Docker utilise 4 composants : le Docker Daemon, Docker Images, Docker Client et Docker repositories.

Le Do ke Dae o fait tou e le Do ke E gi e, ’est-à-di e ui g e l’e se le des o te eu s.

Le Do ke I age est u e i age d’u e appli atio à i stalle et ui est p te à l’e ploi pou la atio d’u
conteneur. On peut ensuite créer des versions de es i ages u’o appelle « instance ».

Le Do ke Clie t pe et d’i te agi a e le dae o ui tou e e a i e-plan.

Le Do ke Reposito ies est le agasi d’i age ui pe et de up e les i ages d’appli atio s ises pa
des utilisateurs et des professionnels.

II. Les différences avec la virtualisation
DOCUMENTATION DOCKER
Une machine virtuelle « imite » entièrement un serveur. Dans un serveur virtualisé, chaque VM invitée
contient un système d'exploitation entier, ainsi que les applications. Chaque VM s'exécute alors sur un
hyperviseur, qui s'exécute à son tour sur un système d'exploitation hôte, qui lui-même fait fonctionner le
matériel du serveur physique.

Bien que la méthode ait fait ses preuves, on s'aperçoit rapidement que chaque itération du système
d'exploitation hôte risque d'entraîner des doublons entre les VM. Cela gaspille la mémoire du serveur et
limite forcément le nombre de VM prises en charge par chaque serveur.

Le rôle de l'hyperviseur est alors assuré par un moteur de conteneurisation, tel que Docker, qui s'installe par-
dessus le système d'exploitation hôte.

Alo s ue l’app o he des o tai e s duit le gaspillage des essou es a ha ue o te eu e e fe e
que l'application et les fichiers ou bibliothèques associées. On utilise donc le même système d'exploitation
(OS) hôte pour plusieurs conteneurs, au lieu d'installer un OS (et d'en acheter la licence) pour chaque VM
invitée.

Ce procédé est souvent appelé virtualisation au niveau du système d'exploitation.

III. L’i stallatio de DOCKER

$ curl –sSL https://get.docker.com/ | sh
DOCUMENTATION DOCKER

Cette o a de pe et de fai e u e e u te HTTP a e la thode `GET` su l’u l et de up e et de
lancer le script qui se trouve à cette adresse.

$ sudo usermod -aG docker your-user

Ensuite, cette commande ci-dessus nous permet de donner les droits de « root » à l’utilisateu do ke pou
que nous puissions faire des commandes sans ajouter « sudo ».

• Ici, cette commande permet de nous montrer la version installée de docker et donc de verifier si
docker est bien present.

IV. Utiliser les containers

Cette commande ci- o t e de a de à Do ke de ha ge u e i sta e de l’i age hello- o ld .
Co e il e l’a ja ais t l ha g , il a le fai e.
DOCUMENTATION DOCKER
Et une fois terminé, le container téléchargé affi he le essage Hello f o Do ke .

• Il est maintenant possible de savoir quelle machine est lancée, pour cela il suffit de taper cette
commande :

On peut voir qu’u e i sta e de l’i age « hello-world » a été lancée et fermée il y a 7minutes, que son
nom est « sleepy_hawking » et que son ID de container est « 2aca97ea40da ».

• Pou e he he u e i sta e d’u e i age « debian », il nous faut taper cette commande-ci :

On peut voir toutes les instances de l’i age de ia ises e lig e su le DOCKER Hu pa des
contribueurs.

Mais o peut se de a de e u’est le DOCKER Hu ?

Docker Hub est un service de registre basé sur le cloud qui vous permet de créer des liens vers des
référentiels de code, de créer et de tester vos images, de stocker des images poussées manuellement et
DOCUMENTATION DOCKER
des liens vers Docker Cloud pour déployer des images sur vos hôtes. C’est i i ue ous e o s ous
« servir » lo s u’o fait u « search » en ligne de commande.

• Pour supprimer u o tai e , il ous suffit de o aît e le o ou l’ID de elui-ci et ensuite
d’utilise ette o a de :

$ docker rm name $ docker rm ID

Maintenant que nous avons commencé à utiliser un container, ous allo s app e d e e u’est u e
image, une instance et la façon de les nommer.
Tout d’a o d, u e i age de base est un ensemble de fichiers, cette image de base est faite de
différentes autres images.
Et cette image finale peut être modifiée mais à ce moment-là cela devient un container.

Une image est une version non-modifiable contrairement au container.

• Pou se o e te à l’i sta e de l’i age de debian créée, on utilise la commande suivante :
$ docker run -it <nom_du_container ou ID>

Les o tai e s DOCKER utilise t des ad esses IPV4, elles e peu e t pas a oi d’ad esse IP pu li ue do
elles utilisent des adresses IP privées. Pour pouvoir utiliser les services installés dessus, il faut utiliser les
po ts et les appele g â e à l’ad esse IP de la machine qui supporte les containers.

I i, ous a o s la u o tai e de apa he2 su le po t 80 de l’hôte et su le po t 80 du se eu e .
DOCUMENTATION DOCKER

• Pou ela, ous a o s t l ha g l’i age ia ette o a de :

• Puis, ous l’a o s la su so po t 80 e i te e ( ’est-à-dire de la machine apache2) et sur
so po t 80 e e te e ( ’est-à-dire de la machine docker) :

V. Comment gérer le problème de persistance ?

Si je regarde maintenant l'IP de ma machine sur le port 80 je vois bel et bien mon installation du serveur
web qui fonctionne correctement. En revanche dès que je ferme mon conteneur mes données vont
disparaître, car un nouveau run va avoir pour effet de repartir de l'image sans conserver mes éventuelles
modifications.
DOCUMENTATION DOCKER
Nous allons donc lier le volume où est contenu les données du container avec un volume qui se trouve
sur la machine docker, ici le dossier /var/lib/apache2.

Commande exemple :
$docker run -it -d –name <nom> –volume <dossier à lier sur machine réelle> <commande>

Co a de da s le as d’u o tai e apa he2 :
$docker run -it -d –name apache-test –volume /var/lib/apache2 apache2

On peut voir grâce à un $docker inspect apache-test que la source du volume du container se trouve
dans / ar/li /do ker/… et que ce volume est lié à un volume en dehors du container, sur la machine hôte
docker, dans /var/lib/apache2

VI. Comment mettre en ligne notre container ?

Tout d’a o d, il faut transformer notre container en une image :
DOCUMENTATION DOCKER
Il va falloir créer un compte sur le DOCKER HUB :

Et se logger depuis la machine docker pour uploader notre image.

$docker login
$docker image push ventaja/mysql

VII. GLPI

$docker run -it -d -p 8081:80 –name glpi diouxx/glpi
DOCUMENTATION DOCKER

VIIII. DNS

• Pour installer le service DNS sur un container DOCKER, nous avons containerisé une machine
debian sur laquelle nous avons installé le service DNS (bind9).
DOCUMENTATION DOCKER

• Il faut ensuite modifier le fichier /etc/bind/named.conf.options pour configurer la redirection du
DNS, ici notre redirecteur est un DNS de Google (8.8.8.8) ainsi que le propre DNS de la machine
dans /etc/resolv.conf.

• Maintenant, il nous faut redémarrer le service DNS de la machine debian pour que la
configuration soit prise en compte.

• Enfin, nous pouvons voir maintenant que la machine « stupefied_cori » est accessible sur le port
53.

Maintenant, il faut cha ge le se eu DN“ de la a hi e lie te pou u’il puisse alle su I te et.
On le configure a e l’ad esse IP du o tai e où est installé le DNS.
DOCUMENTATION DOCKER

Test de ping :

X. NAS

Le NAS utilisé est OpenMediaVault.
Il est a essi le su l’ad esse IP a e le po t 8082.
DOCUMENTATION DOCKER