Introduction

La para-virtualisation et la conteneurisation

Avant de présenter Docker, il est nécessaire de comprendre les concepts de para-virtualisation et de conteneurisation.

La para-virtualisation est une technique de virtualisation qui permet à une « machine virtuelle » d’utiliser un système sans à avoir virtualiser l’ensemble des composants de l’ordinateur (carte réseau, processeur, etc…), contrairement à la virtualisation classique qui va devoir émuler ces derniers. L’intérêt majeur est un gain important de performances, car la « machine virtuelle » utilise directement les ressources de la machine physique sans à avoir émuler un composant intermédiaire.

En informatique, on s’inspire du concept de conteneurisation issue du domaine de la logistique, c’est à dire pouvoir empaqueter un ensemble de ressources/produits (une application et l’ensemble de ses dépendances) afin de livrer le tout à une destination (un serveur informatique) sans à avoir à analyser le contenu.

L’image ci-dessous illustre ce propos.

Qu’est-ce que Docker?

Docker est un outil de conteneurisation qui s’appuie sur la para-virtualisation d’un système, afin de pouvoir livrer simplement l’ensemble d’une application et ses librairies sans à avoir adapter grandement le serveur qui va l’héberger. Dans les faits, il suffira d’installer le logiciel Docker sur le serveur pour que l’application puisse fonctionner, il faudra ensuite paramétrer cette dernière.

Dans Docker, une application est livrée dans un conteneur qui fournit l’ensemble des éléments nécessaires à son fonctionnement.

Les avantages de ces conteneurs sont donc énormes, on peut lister notamment les points suivants :

  • réduire les ressources nécessaires pour déployer et lancer des applications
  • réduire la complexité de déploiement et les échanges compliqués entre les développeurs (qui produisent les applications) et les sys-admins (qui gèrent l’infrastructure et fournissent le cadre pour faire fonctionner les applications)
  • donner la possibilité aux développeurs de pouvoir utiliser et configurer librement le système nécessaire qui servir de support à l’application
  • permettre aux conteneurs de partager facilement des ressources entre eux

Il est à noter également que Docker est cross-platform, il peut donc fonctionner sur Windows, Mac ou Linux.

Comment utiliser Docker?

Les étapes ci-dessous montrent comment réaliser un premier conteneur sous Linux.

Installation de Docker

Pour installer Docker sous Linux, nous allons partir d’une distribution ubuntu server LTS 18.04.

Une fois votre distribution fonctionnelle, voici les commandes à utiliser pour installer Docker :

Utilisation de Docker

Maintenant que nous avons un environnement de Docker fonctionnel, regardons ce que nous pouvons concrètement réaliser.

Télécharger et lancer des images

Les conteneurs de Docker sont construit en prenant comme base des images, pour le moment nous allons simplement télécharger des images depuis le dépôt officiel.

Vous pouvez vous rendre sur le site https://hub.docker.com/, vous y trouverez toutes les images disponibles, à noter qu’une image officielle créée et supportée par l’équipe de Docker porte la mention ‘official‘.

Si vous souhaitez savoir quelles images sont disponibles sur votre serveur, vous pouvez lancer la commande suivante :

Voici le résultat de cette commande :

Pour lancer les images, il suffit d’essayer la commande docker run. Cette commande permet de lancer une opération sur un conteneur spécifique, une fois la commande réalisée le conteneur est ensuite supprimé.

Quelques exemples, avec les commandes suivantes:

Un cas  concret : Installer une application à l’aide de Docker

Nous allons maintenant rentrer dans le vif du sujet avec l’intérêt principal de Docker : le déploiement d’application. Pour rappel, notre serveur hôte Ubuntu possède uniquement Docker et donc aucune dépendance spécifique à des applications. Nous allons maintenant utiliser Docker pour installer une application : GLPI (une application de gestion de parc informatique développée en PHP).

Afin de trouver une image qui correspond à notre besoin, il suffit de se rendre sur https://hub.docker.com et de rechercher avec le tag ‘glpi ». Dans cet exemple, nous optons pour l’image https://hub.docker.com/r/driket54/glpi/, nous lançons ensuite la commande suivante issue de la documentation.

Vous pouvez maintenant vous rendre sur l’adresse de votre serveur qui héberge Docker (http://votreserveur) et vous devriez avoir comme résultat la page suivante :

Et voilà! En une ligne de commande, vous avez une application fonctionnelle qui embarque toutes ses dépendances au sein de son conteneur. Si vous souhaitez allez plus loin avec cette image, il faudra préciser un serveur de base de données dans sa configuration.

Si vous souhaitez arrêter ce conteneur, il suffit de lancer la commande suivante :

Et enfin, pour connaitre la liste des conteneurs en cours d’exécution  sur votre système :

Conclusion

A travers cette rapide introduction à Docker, nous avons pu constater les avantages qu’offre cette solution et on comprend pourquoi elle est de plus en plus utiliser par les communautés (développeurs et administrateurs). Il reste encore beaucoup de points à aborder sur Docker et cela fera l’objet de nouveaux articles!

 

 

Catégories : Informatique

0 commentaire

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.