Projet Docker

Docker ?

Avant toute chose, essayons de comprendre ce qu’est Docker.

Docker est une technologie de virtualisation open-source qui a été créée par le franco-américain Solomon Hykes.
Solomon Hykes a nommé son invention Docker car on crée des conteneurs les uns sur les autres, ce n’est pas si loin de l’ ouvrier travaillant sur les docks et qui charge et décharge les navires finalement…

Le principe de Docker est de pouvoir faire tourner un service (Web, FTP…) sur une machine virtuelle, sans avoir besoin de tous les éléments de cette machine virtuelle (tels que tous les services, l’interface graphique…). On parle alors de conteneur et d’instance.
Le secret de cette technologie est qu’elle se repose sur les composants de la machine hôte, ainsi si votre ordinateur physique tourne sous Linux, il ne vous sera pas possible d’utiliser un conteneur Docker sous Windows et inversement.

Le déroulement du projet :

Ce projet Docker a pour objectif de nous faire découvrir cette technologie et de mettre en pratique nos connaissances.
Par soucis d’organisation, ce projet a été dégroupé en 8 étapes :

1ère étape : Présentation

Cette étape préliminaire nous redirige vers le site du Youtuber Grafikart nous expliquant ce qu’est Docker afin de nous plonger dans le bain.
On y découvre alors la notion de conteneurs et l’on apprend à créer une image système (la base d’un conteneur) avec des cas concrets.

2ème étape : Veille informationnelle à propos de Docker

Cette seconde étape consiste à se documenter sur Docker, elle nous permet d’en savoir un peu plus sur la technologie et surtout de se mettre dans un contexte de veille technologique qui, rappelons-le, est une épreuve à la fin de ce BTS (épreuve E6).

Nous avons donc pu découvrir un outil tel que Diigo qui est une extension pour navigateur nous permettant d’épingler les données intéressantes d’un article et de les retrouver plus tard, de manière organisée. Cet outil est censé améliorer notre productivité.

3ème étape : Installation et premiers tests

Là nous rentrons dans le vif du sujet. Il s’agit d’installer Docker sur une machine virtuelle Linux CentOS 7.0. Nous effectuerons par la suite nos premiers tests avec le conteneur hello–world. Nous allons également découvrir Dockerfile, un composant interne de Docker permettant de gérer les conteneurs, ainsi que Portainer qui permet d’avoir une jolie interface graphique.

4ème étape : Utiliser une image Apache

Comme le nom de cette étape le laisse présager, nous configurons un conteneur avec une image Alpine Apache en tant que serveur Web, cela nous apprend à contrôler nos conteneurs avec Dockerfile.

Dans un premier temps les étapes sont réalisées en ligne de commandes, puis dans un second temps avec l’interface graphique Portainer.

5ème étape : Utilisation de Portainer

Cette étape consiste à  prendre en main Portainer en faisant communiquer 2 conteneurs entre eux, il faut alors effectuer les paramétrages nécessaires (IP, Firewall, Apache…)

6ème étape : Docker-Compose

Découverte de Docker-Compose, un composant de Docker très utile pour organiser ses conteneurs et automatiser des tâches, à l’aide d’un fichier de configuration « .yml ».

7ème étape : Créer sa propre machine Apache

Depuis le début nous utilisons des machines déjà prêtes, proposées par la communauté de Docker, cette étape nous apprend comment créer notre propre machine à partir d’une image Debian de base, avec l’interface graphique Portainer évidemment. Cette étape nous initie par ailleurs à la notion de volumes.

8ème étape : Créer un serveur Web sous Debian avec Dockerfile

Ici, nous devons faire la même chose qu’à la septième étape, c’est à dire, créer notre propre machine mais en utilisant Dockerfile, ce qui signifie sans interface graphique, en ligne de commande (oui, oui).

Vous pouvez retrouver l’étendue de mon travail, quant à ce projet Docker, en cliquant ici.

Matthieu

Matthieu BRIAND, 21 ans, actuellement étudiant en 2ème année de BTS SIO option SISR (réseau).
Je cherche également une alternance en contrat de professionnalisation de 2 ans dans le cadre d'un BAC+4 Administrateur Systèmes et Réseaux.