Docker-1 Présentation 👨‍🏫

Objectifs:
🎯 Concevoir, tester et déployer des applications rapidement.

Prérequis:
💡 N/A


logo de bacula, outil devops d'automatisation de backups.

Docker est une plate-forme logicielle qui vous permet de concevoir, tester et déployer des applications rapidement. Il vous sera possible de déployer vos applications dans des entités que l'on appelle conteneurs.

Le conteneur contient toutes les dépendances ou ressources permettant de faire fonctionner une application. C'est à dire que peut importe la machine hôte sur laquelle vous lancerez votre conteneur votre application marchera independamment de sa distribution.

Contrairement à la virtualisation qui elle via un hyperviseur permet de simuler une ou plusieurs machines physiques et les exécuter sous forme de VMs qui intègrent elles même un OS, les conteneurs crée par conteneurisation font appels de manière isolée, à l'OS de la machine hôte pour réaliser ses appels systèmes et exécuter ses applications (Docker suit une architecture du type client-serveur, le client docker communique avec le docker daemon qui fait tourner le docker engine).

Les conteneurs sont crées à l'aide d'images qui sont des templates prêt à l'emploi. Les images sont soit:
- Construite à l'aide d'un dockerfile
- Contruite à l'aide d'une image déjà existante
- Récupérée sur un dépot docker (voir dockerhub)

Workflow de création/utilisation d'une image docker:
(1) Image prise depuis dockerhub (pull) ou création à l'aide d'un dockerfile
(2) Docker engine exécute l'image pour créer un conteneur
(3) Création d'une image à partir du conteneur
(4) Push de l'image dans un registre
Workflow de création d'un conteneur docker.

Conclusion:
Le conteneur n'embarque pas d'OS mais utilise celui de l'hôte -> facilement transportable.
Le conteneur embarque toutes les ressources nécessaires à l'application -> réutilisation facile.
Dans le prochain chapitre Docker-2: Installation nous allons procéder à l'installation de docker.