Search
Close this search box.

L’application Docker Desktop regroupe des outils développeurs, Docker App, Kubernetes et la synchronisation de version. Elle permet de créer des images et des templates en choisissant les langages et outils. Les principaux avantages sont la vitesse, la sécurité et la flexibilité.

 

Qu’est-ce qu’un conteneur ?

Avant de découvrir Docker, vous devez comprendre ce qu’est un conteneur. Il s’agit d’un environnement d’exécution léger, et d’une alternative aux méthodes de virtualisation traditionnelles basées sur les machines virtuelles.

L’une des pratiques clés du développement de logiciel moderne est d’isoler les applications déployées sur un même hôte ou sur un même cluster. Ceci permet d’éviter qu’elles interfèrent.

Pour exécuter les applications, il est toutefois nécessaire d’exploiter des packages, des bibliothèques et divers composants logiciels. Pour exploiter ces ressources tout en isolant une application, on utilise depuis longtemps les machines virtuelles.

Celles-ci permettent de séparer les applications entre elles sur un même système, et de réduire les conflits entre les composants logiciels et la compétition pour les ressources. Cependant, une alternative a vu le jour : les conteneurs.

Une machine virtuelle s’apparente à un système d’exploitation complet, d’une taille de plusieurs gigaoctets, permettant le partitionnement des ressources d’une infrastructure. Un conteneur délivre uniquement les ressources nécessaires à une application.

En effet, le conteneur partage le kernel de son OS avec d’autres conteneurs. C’est une différence avec une machine virtuelle, utilisant un hyperviseur pour distribuer les ressources hardware.

Cette méthode permet de réduire l’empreinte des applications sur l’infrastructure. Le conteneur regroupe tous les composants système nécessaires à l’exécution du code, sans pour autant peser aussi lourd d’un OS complet.

De même, un conteneur est plus léger et plus simple qu’une machine virtuelle et peut donc démarrer et s’arrêter plus rapidement. Il est donc plus réactif, et adaptable aux besoins fluctuants liés au ” scaling ” d’une application.

Dernier point fort : contrairement à un hyperviseur, un moteur de conteneur n’a pas besoin d’émuler un système d’exploitation complet. Le conteneur offre donc de meilleures performances qu’un déploiement sur machine virtuelle traditionnelle.

Qu’est-ce que Docker ?

Docker est une plateforme de conteneurs lancée en 2013 ayant largement contribué à la démocratisation de la conteneurisation. Elle permet de créer facilement des conteneurs et des applications basées sur les conteneurs. Il en existe d’autres, mais celle-ci est la plus utilisée. Elle est par ailleurs plus facile à déployer et à utiliser que ses concurrentes.

C’est une solution open source, sécurisée et économique. De nombreux individus et entreprises contribuent au développement de ce projet. Un large écosystème de produits, services et ressources sont développés par cette vaste communauté.

Initialement conçue pour Linux, Docker permet aussi la prise en charge des containers sur Windows ou Mac grâce à une ” layer ” de virtualisation Linux entre le système d’exploitation Windows / macOS et l’environnement runtime Docker. Il est donc possible d’exécuter des conteneurs Windows natifs sur des environnements de conteneurs Windows ou Linux.

Quels sont les différents éléments de Docker ?

La plateforme Docker repose sur plusieurs technologies et composants. Voici les principaux éléments.

Docker Engine

Le Docker Engine est l’application à installer sur la machine hôte pour créer, exécuter et gérer des conteneurs Docker. Comme son nom l’indique, il s’agit du moteur du système Docker.

C’est ce moteur qui regroupe et relie les différents composants entre eux. C’est la technologie client-serveur permettant de créer et d’exécuter les conteneurs, et le terme Docker est souvent employé pour désigner Docker Engine.

On distingue le Docker Engine Enterprise et le Docker Engine Community. La Docker Community Edition est la version originale, proposée en open source gratuitement.

La version Enterprise, lancée en 2017, ajoute des fonctionnalités de gestion comme le contrôle de cluster et la gestion d’image ou la détection de vulnérabilité. Elle est tarifée à 1500 $ par noeud et par an.

Docker Daemon

Le Docker Daemon traite les requêtes API afin de gérer les différents aspects de l’installation tels que les images, les conteneurs ou les volumes de stockage.

Docker Client

Le client Docker est la principale interface permettant de communiquer avec le système Docker. Il reçoit les commandes par le biais de l’interface de ligne de commande et les transmet au Docker Daemon.

Dockerfile

Chaque conteneur Docker débute avec un ” Dockerfile “. Il s’agit d’un fichier texte rédigé dans une syntaxe compréhensible, comportant les instructions de création d’une image Docker.

Un Dockerfile précise le système d’exploitation sur lequel sera basé le conteneur, et les langages, variables environnementales, emplacements de fichiers, ports réseaux et autres composants requis.

Les images Docker

Une image Docker est un modèle en lecture seule, utiliser pour créer des conteneurs Docker. Elle est composée de plusieurs couches empaquetant toutes les installations, dépendances, bibliothèques, processus et codes d’application nécessaires pour un environnement de conteneur pleinement opérationnel.

Après avoir écrit le Dockerfile, on invoque l’utilitaire ” build “ pour créer une image basée sur ce fichier. Cette image se présente comme un fichier portable indiquant quels composants logiciels le conteneur exécutera et de quelle façon.

Les conteneurs Docker

Un conteneur Docker ou Docker Container est une instance d’image Docker exécutée sur un microservice individuel ou un stack d’application complet. En lançant un conteneur, on ajoute une couche inscriptible sur l’image. Ceci permet de stocker tous les changements apportés au conteneur durant le runtime.

Docker run

L’utilitaire “run” de Docker est la commande permettant de lancer un conteneur. Chaque conteneur est une instance d’une image.

Les conteneurs sont conçus pour être temporaires, mais peuvent être arrêtés et redémarrés dans le même état. Plusieurs instances d’une même image peuvent être exécutées simultanément.

Le registre Docker

Le registre Docker est un système de catalogage permettant l’hébergement et le ” push and pull ” des images Docker. Il est possible d’utiliser votre propre registre local, ou l’un des nombreux services de registre hébergés par des tiers comme Red Hat Quay, Amazon ECR, Google Container Registry.

Le Docker Hub est le registre officiel de Docker. Il s’agit d’un répertoire SaaS permettant de gérer et de partager les conteneurs. On peut y trouver des images Docker de projets open source ou de vendeurs logiciels. Il est possible de télécharger ces images et de partager les vôtres.

Un registre Docker organise les images dans différents répertoires de stockage. Chacun d’entre eux contient différentes versions d’une image Docker partageant le même nom d’image.

merci de nous contacter