Présentation
Docker est une plate-forme ouverte pour le développement, la livraison et l'exécution d'applications. Docker vous permet de séparer vos applications de votre infrastructure afin que vous puissiez livrer rapidement des logiciels. Avec Docker, vous pouvez gérer votre infrastructure de la même manière que vous gérez vos applications. En tirant parti des méthodologies de Docker pour expédier, tester et déployer rapidement le code, vous pouvez réduire considérablement le délai entre l'écriture du code et son exécution en production.
La plateforme docker
Docker offre la possibilité de conditionner et d'exécuter une application dans un environnement isolé appelé conteneur. L'isolation et la sécurité vous permettent d'exécuter plusieurs conteneurs simultanément sur un hôte (host, serveur) donné. Les conteneurs sont légers et contiennent tout le nécessaire pour exécuter l'application, vous n'avez donc pas besoin de vous fier à ce qui est actuellement installé sur l'hôte. Vous pouvez facilement partager des conteneurs pendant que vous travaillez et vous assurer que toutes les personnes avec lesquelles vous partagez reçoivent le même conteneur qui fonctionne de la même manière.
Développez votre application et ses composants de support à l'aide de conteneurs.
Le conteneur devient l'unité de distribution et de test de votre application.
Lorsque vous êtes prêt, déployez votre application dans votre environnement de production, en tant que conteneur ou service orchestré. Cela fonctionne de la même manière, que votre environnement de production soit un centre de données local, un fournisseur de cloud ou un hybride des deux.
Pour quoi utiliser docker
- Livraison rapide et cohérente de vos applications
- Déploiement et mise à l'échelle réactifs
- Exécuter plus de charges de travail sur le même hardware
L’architecture Docker
Docker utilise une architecture client-serveur. Le client Docker communique avec le démon Docker, qui effectue le gros du travail de création, d'exécution et de distribution de vos conteneurs Docker. Le client et le démon Docker peut s'exécuter sur le même système, ou vous pouvez connecter un client Docker à un démon Docker distant. Le client et le démon Docker communique à l'aide d'une API REST, via des sockets UNIX ou une interface réseau. Un autre client Docker est Docker Compose, qui vous permet de travailler avec des applications composées d'un ensemble de conteneurs.
Le démon Docker
Le daemon Docker (dockerd) écoute les requêtes de l'API Docker et gère les objets Docker tels que les images, les conteneurs, les réseaux et les volumes. Un démon peut également communiquer avec d'autres démons pour gérer les services Docker.
Le client Docker
Le client Docker (docker) est le principal moyen utilisé par de nombreux utilisateurs Docker pour interagir avec Docker. Lorsque vous utilisez des commandes telles que docker run, le client envoie ces commandes à dockerd, qui les exécute. La commande docker utilise l'API Docker. Le client Docker peut communiquer avec plusieurs démons.
Le desktop Docker
Docker Desktop est une application facile à installer pour votre environnement Mac ou Windows qui vous permet de créer et de partager des applications et des micro-services conteneurisés. Docker Desktop inclut le daemon Docker (dockerd), le client Docker (docker), Docker Compose, Docker Content Trust, Kubernetes et Credential Helper.
Les objets Docker
Lorsque vous utilisez Docker, vous créez et utilisez des images, des conteneurs, des réseaux, des volumes, des plug-ins et d'autres objets. Cette section est un bref aperçu de certains de ces objets.
Les images
Une image est un modèle en lecture seule contenant des instructions pour créer un conteneur Docker. Souvent, une image est basée sur une autre image, avec quelques personnalisations supplémentaires. Par exemple, vous pouvez créer une image basée sur l'image ubuntu, mais installer le serveur Web Apache et votre application, ainsi que les détails de configuration nécessaires pour faire fonctionner votre application.
Vous pouvez créer vos propres images ou n'utiliser que celles créées par d'autres et publiées dans un registre. Pour construire votre propre image, vous créez un Dockerfile avec une syntaxe simple pour définir les étapes nécessaires pour créer l'image et l'exécuter. Chaque instruction d'un Dockerfile crée une couche dans l'image. Lorsque vous modifiez le Dockerfile et reconstruisez l'image, seuls les couches qui ont changé sont reconstruits. Cela fait partie de ce qui rend les images si légères, petites et rapides, par rapport aux autres technologies de virtualisation.
Les conteneurs (containers)
Un conteneur est une instance exécutable d'une image. Vous pouvez créer, démarrer, arrêter, déplacer ou supprimer un conteneur à l'aide de l'API ou de la CLI Docker. Vous pouvez connecter un conteneur à un ou plusieurs réseaux, y attacher un stockage ou même créer une nouvelle image en fonction de son état actuel.
Par défaut, un conteneur est relativement bien isolé des autres conteneurs et de sa machine hôte. Vous pouvez contrôler le degré d'isolement du réseau, du stockage ou d'autres sous-systèmes sous-jacents d'un conteneur par rapport aux autres conteneurs ou à la machine hôte.
Un conteneur est défini par son image ainsi que par les options de configuration que vous lui fournissez lorsque vous le créez ou le démarrez. Lorsqu'un conteneur est supprimé, toutes les modifications apportées à son état qui ne sont pas stockées dans le stockage persistant disparaissent.
No Comments