Techso EN

Docker, une application de virtualisation

DEV

Techso est dotée d’une expertise accrue sur la solution libre de droits «Docker» grâce à son équipe de développeurs multidisciplinaires. Elle vous propose ainsi cet article qui vous introduira à l’utilisation de cette technologie et qui vous en expliquera ses bénéfices.

Introduction à Docker

Docker est une application de virtualisation basé sur le kernel linux. L’outil permet notamment de contenir une application (ou plusieurs) avec toutes leurs dépendances nécessaires pour être correctement exécutés. En résumé, Docker crée une copie du système d’exploitation linux dans un conteneur virtuel, un peu comme une machine virtuelle.

Explorons le fonctionnement interne de docker. Ci-dessous se trouvent les étapes principales du fonctionnement de docker.

  1. Une requête de construction d’image est envoyée (docker build) ou une requête d’utilisation d’image existante est envoyée (docker pull, docker run).
  2. La deuxième étape consiste à trouver l’image qui va être exécuté ou bien construire l’image.
    • Dans le cas où l’image est non-disponible localement, alors le processus Docker va la trouver en ligne dans le registre configuré (par défaut docker.io). Un registre Docker contient les images pré-construite prêtes à être utilisées.
      Un coup l’image construite ou téléchargée, alors on continue vers l’étape 3.
    • Si l’image est disponible localement, alors on ignore le registre en ligne de docker et on va à l’étape 3.
    • Dans le cas de la construction, le contexte (l’arborescence de fichier au même niveau que le fichier «Dockerfile») est envoyé au processus.
  3. L’image est résolue et vérifiée (comparaison de checksum), puis stockée localement, de façon accessible au processus docker.
  4. Cette partie se produit seulement lors de la commande docker run : un conteneur Docker est construit avec l’image de l’étape #2 et #3 puis est exécuté sur l’hôte, indépendamment du système d’exploitation.

Il y a bien sûr moyen de personnaliser les paramètres d’une image, notamment avec des variables d’environnement (option -e), en personnalisant les « Port-Forwarding » (option -p) ou en personnalisant le réseau de l’image (option –network). Docker est donc très flexible et permissible au niveau de la configuration.

Pourquoi donc investir dans la technologie Docker et quels en sont les avantages ?

Docker peut vous faciliter la vie de plusieurs manières :

  • L’outil permet de contenir une application «Backend» autant pendant sa construction (compilation), son déploiement ou même son exécution. Par exemple, un serveur pour une API de type REST qui permet de stocker des données via l’infonuagique;

  • Vous avez une application client qui ne fonctionne pas sur tous les systèmes d’exploitation. Par exemple, Microsoft Word, considérant que vous avez une license pour l’utiliser;

  • Vous nécessitez une base de données avec une version spécifique avec moins de gestion supplémentaire. Par exemple, MariaDB version 10.2;

  • Vous avez une application écrite dans un langage de programmation non-portable. Par exemple, une application de rétrocompatibilité avec du vieux code écrite en C ou C++;

  • Vous avez une application étant un nœud réseau disponible sur internet, Docker permet d’ajouter une couche de sécurité entre l’application et le système d’exploitation. Par exemple, une application IoT qui analyse le niveau de l’eau et qui est accessible via un site web;

  • Vous avez des pipelines d’intégration et de déploiement continue (CI/CD), alors Docker permet d’éviter de devoir gérer un serveur, installer de multiples dépendances et compiler une application, c’est par exemple très utile pour du DevOps.

Nous nous mettons ainsi à votre disposition pour répondre à toutes questions ou demandes concernant la virtualisation avec la technologie Docker. Contactez-nous directement pour une assistance rapide!