Accueil TechnologiesDocker Qu’est-ce que Docker, et comment ça fonctionne ?

Qu’est-ce que Docker, et comment ça fonctionne ?

par Jérémy PASTOURET

Je continue ma série d’articles un peu plus techniques que d’habitude, avec un outil très utile et prisé par les développeurs aujourd’hui : j’ai nommé Docker. Je vous propose de commencer par la base :

Qu’est-ce que Docker ?

Docker est un programme de haut niveau qui vous permet d’empaqueter une application ainsi que ses dépendances (librairies externes par exemple) dans un conteneur isolé et qui pourra être exécuté sur n’importe quel serveur (Windows, Mac, Linux).

Il y a de nombreux avantages à utiliser ce genre de technologie :

  • Le système est très léger car il n’embarque pas de système d’exploitation, ce qui permet aussi une meilleure utilisation des ressources.
  • Docker permet également l’isolation des applications, ce qui est très utile pour effectuer des tests sans faire planter le serveur de production client.
  • On peut piloter Docker facilement grâce à une panoplie de commandes.

Cependant, il existe également quelques inconvénients :

  • En termes de sécurité, cet outil peut constituer un danger. En effet, si un hacker attaque le serveur maître contenant les conteneurs, il peut faire tout ce qu’il veut avec.
  • Il pourrait ainsi supprimer facilement la base de données sans trop chercher, ou bien détruire votre site web… même si (techniquement) on sécurise vraiment le serveur maître. Car vous l’avez compris, si un hacker en prend le contrôle, vous êtes en très mauvaise posture.
  • Pour résumer : avec Docker tout est accessible, et facile. Donc un éventuel hacker sera beaucoup plus rapide pour faire planter votre système (s’il comprend que tout fonctionne grâce à cet outil).
  • Un dernier inconvénient : difficile de faire communiquer plusieurs conteneurs entre eux, car la base de Docker est d’isoler tous les conteneurs. Sauf que dans certains cas, on a besoin de les faire communiquer entre eux.

Maintenant je vais vous parler des conteneurs, afin de vous donner un aperçu global du fonctionnement de cet outil :

Qu’est-ce qu’un conteneur Docker ?

docker-container

Un conteneur est un système de virtualisation bien particulier, utilisant l’isolation comme méthode de cloisonnement au niveau du système d’exploitation. Il est utilisé pour faire fonctionner différents environnements – principalement Linux – isolés les uns des autres.

Il faut savoir que désormais Microsoft propose des conteneurs Windows, alors qu’a l’origine on ne trouvait dans Docker que des systèmes Linux. Et vice-versa : on peut très bien avoir sur notre machine Windows un conteneur tournant sur Linux, au lieu de jouer avec VirtualBox ou un dual boot pour passer de Windows à Linux et de Linux à Windows, ce qui n’est pas très pratique 😉.

Qu’est-ce qu’une image Docker ?

Docker Image

Une image est un container « statique« , c’est à dire qu’on a pris une photo d’un container à un instant T comprenant nos paramétrages par défaut ce qui nous permet de la dupliquer à volonté.

Les images Docker vous permettent aussi de réaliser des sauvegardes de tout votre environnement. En cas de gros problème, vous pourrez les restaurer. Le bémol c’est que les images peuvent être très lourdes, rendant la restauration un peu longue.

Qu’est-ce qu’un Dockerfile ?

Les Dockerfiles sont des fichiers qui permettent de construire une image Docker adaptée aux besoins, étape par étape.

Les Dockerfiles prennent très peu de place et peuvent se partager/transmettre facilement. En même temps, il est possible de recréer son environnement rapidement. Mais aussi d’effectuer des tests avec des librairies qui ont subi de nouvelles mises à jour, pour vérifier que le système fonctionne toujours aussi bien avant de déployer ces mises à jour en production.

Qu’est-ce qu’un Docker compose ?

Docker Compose

C’est un fichier très utilisé qui permet de créer un multi-conteneur en définissant simplement la liste des conteneurs à utiliser.

Et c’est très pratique car on peut ainsi décrire l’ensemble de son environnement, constitué de plusieurs images ou Dockerfiles… mais je publierai bientôt un article « Travaux Pratiques » pour vous montrer comment ça marche.

Maintenant que je vous ai familiarisé avec Docker, je vous prépare l’article suivant : Les meilleures commandes à utiliser avec Docker. Suivez-nous sur Facebook ou Twitter, et inscrivez-vous à la newsletter pour être informé de sa publication prochaine !

Vous pourriez aussi aimer

Laisser un commentaire

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