Docker

Qu’est-ce que Docker ?

Docker est la plateforme de containers la plus populaire et la plus utilisée dans le monde. En clair, c’est un outil conçu pour faciliter la création, le déploiement et l’exécution d’applications à l’aide de ce qu’on appelle des containers.

Présentation docker
 

Les containers représentent un ensemble de processus logiciels léger et indépendant, regroupant tous les fichiers nécessaires à l’exécution des processus : code, runtime, outils système, libraries et paramètres. En d’autres termes, c’est une boîte complètement isolée du système d’exploitation contenant l’application en elle-même ainsi que tous les autres éléments dont elle a besoin pour fonctionner. 

Vous l’aurez compris, d’une certaine manière, Docker est un peu comme une machine virtuelle. Mais contrairement à cette dernière, plutôt que de créer un système d’exploitation virtuel complet, Docker permet aux applications d’utiliser le même noyau Linux que le système sur lequel elles s’exécutent.

Docker VS machines virutelles
 

À qui s’adresse Docker ?

Docker est un outil conçu pour bénéficier à la fois aux développeurs mais aussi aux administrateurs système.

Pour les développeurs, Docker intervient principalement au niveau de l’écriture de code. En effet, il leur permet d’exécuter cette tâche sans se soucier du système sur lequel il fonctionnera à la finalité. De plus, il est possible d’obtenir une réelle longueur d’avance en utilisant l’un des milliers de programmes déjà conçus pour s’exécuter dans le cadre de leur application.

Enfin, pour le personnel d’exploitation, Docker offre de la flexibilité et réduit potentiellement le nombre de systèmes nécessaires en raison de son faible encombrement et de ses frais généraux relativement réduits.

Quels sont les avantages à utiliser Docker ? 

Cet outil apporte de nombreux avantages aux équipes techniques chargées d’un projet digital. Voici une liste de ses bénéfices : 

  • Flexible et modulable. Docker est construit comme une SOA (Architecture Orientée Services) ce qui fait que chaque élément peut être séparé d’une application pour être modifié ou supprimé. Il est également possible de partager divers processus entre plusieurs applications. 
  • Contrôle des images. A chaque modification faîte sur une image, un historique est disponible. Cela veut dire que toutes les modifications intermédiaires et donc chaque version d’une même image sont disponibles dans Docker. De plus, chaque modification apporte une nouvelle couche à l’illustration. C’est également le cas avec un simple copier / coller. 
  • La restauration des images. Le fait que chaque image intermédiaire soit enregistrée sous forme de couches dans Docker vous permet de les restaurer beaucoup plus facilement. Par exemple, vous avez apporté une modification à une photo mais celle-ci ne vous plait pas. Vous avez la possibilité de restaurer la version précédente de cette dernière. Cet outil vient alors favoriser et faciliter le développement agile. 
  • Meilleure gestion des applications. En effet, comme toutes les applications se trouvent dans des containers, il sera beaucoup plus simple de les gérer, les tester et ensuite les déployer. 
  • Très rapide ! Avec certains outils, il est facile de perdre du temps, mais aussi de l’argent, entre l’installation, le matériel et la mise en marche de l’application. Avec Docker, le déploiement se fait en seulement quelques secondes. De plus, il vous sera possible de partager n’importe quel processus avec d’autres applications. 
  • Open source. Cela signifie que n’importe qui peut contribuer à Docker et l’étendre pour répondre à ses propres besoins. Il est également possible d’avoir accès aux créations d’images d’autres utilisateurs pour créer vos propres conteneurs. 

 

Les différents avantages de Docker
 

Cependant, faites attention à ne pas créer trop de containers. Cela pourrait rendre la gestion de ces derniers un peu trop complexe et amener à une désorganisation. 

Comment fonctionne Docker ? 

L’outil Docker utilise la technologie Linux pour que tous les processus soient indépendants. Cela signifie que même si plusieurs applications sont sur le même système d’exploitation mais qu’elles sont chacune dans un container différent, alors elles pourront être gérées séparément en fonction de leurs besoins. 

Docker permet la prise en charge des containers sur Windows et MacOS. Vous verrez que cette plateforme est découpée en différentes parties : 

  • Docker Engine qui correspond au moteur du système et qui va permettre d’installer l’application en elle-même. Ce moteur va relier toutes les autres parties entre elles.
  • Docker Client est l’interface permettant de communiquer avec Docker en passant par une ligne de commande.
  • Docker Daemon est la partie qui va traiter les requêtes de Docker Client.
  • Dockerfile qui correspond à un fichier texte désignant le système d’exploitation sur lequel sera déployé le container. 
  • Registre Docker correspondant au catalogue de toutes les images. 

 

En règle générale, cet outil fonctionne principalement avec Docker Daemon et Docker Client. 

Lorsque vous allez lancer un conteneur, il va falloir le baser sur une image que vous allez créer ou déjà existante dans Docker. Il faut considérer les images comme des templates que vous pouvez utiliser pour créer vos propres conteneurs.

Exemple de page de Docker.
 

Lorsque vous allez ensuite lancer votre conteneur, celui-ci va arriver avec une série de librairies et d’autres fichiers déjà conçus. 

Vous pourrez apporter autant de modifications que vous le souhaitez à vos conteneurs sans que celà ait un impact si vous supprimez le fichier car comme le conteneur est basé sur une image, les modifications peuvent ne pas être persistantes. Toutefois, elles pourront être enregistrées si vous le voulez. 

Si vous souhaitez avoir plus de détails sur le fonctionnement de Docker et les différentes lignes de commande, nous vous invitons à regarder ces vidéos :