Table des matières
ToggleJe me suis formée à Docker dans le cadre de mon second stage
Docker qu’est ce que c’est ?
C’est une plateforme pour build, run et ship des applications et cela permet qu’elles soient effectives sur n’importe quelle machine. Docker permet de faire des sortes de packages d’applications avec tout ce qu’elles ont besoin pour fonctionner (comme des versions de technos par exemple) et de ce fait, on peut la run de n’importe quelle machine qui dispose de Docker. Il n’y a pas besoin de configurer des machines pour des projets spécifiques, pas d’installation de dépendances etc, on a juste besoin du projet dans Docker qui se chargera lui même d’installer tout ce qu’il faut pour que le projet fonctionne. Il va installer ça dans un environnement isolé appelé un container.
Pourquoi c’est bien ?
Parce qu’on peut avoir des différents projets sur la même machine qui ne fonctionne pas avec les mêmes versions. Un projet peut utiliser Java 17 et l’autre Java 21 et ils sont isolés et ne rentrent pas en conflit.
C’est pratique aussi parce que quand on ne veut plus travailler sur un projet, on a juste à supprimer le projet sur Docker et ça supprime automatiquement toutes ses dépendances. Ça permet aussi de pas encombrer notre machine physique de choses inutiles et qu’on n'ose pas supprimer par peur que ces choses soient encore liées à des projets en cours.
Virtual machines VS Containers
En quoi une une machine virtuelle est différente d’un container?
Pour les VM :
Une machine virtuelle (VM) est une abstraction d’une machine ou d’hardware, on peut donc faire fonctionner plusieurs VM sur une seule machine physique, on peut faire ça grâce à Hypervisor, comme VirtualBox par exemple.
Pourquoi utiliser une VM? Pour run une application de façon isolée, mais il y a quelques désavantages, notamment :
- Que toutes les VM ont besoin d’un OS
- Qu’elles sont longues à démarrer
- Elles consomment beaucoup de ressources, parce que chaque VM utilise des ressources de la machine physique sur laquelle elle tourne, ça limite donc le nombre de VM qu’on peut avoir et ça créer une limite dû aux ressources de la machine physique qui ne sont pas illimitées
Pour les containers :
On peut faire fonctionner différentes applications de façon isolées et elles sont plus légères, car pas besoin d’OS pour les faire tourner. Tous les containers d’une machine partagent le même OS que la machine hôte, ça leur permet de démarrer rapidement et d’avoir besoin de beaucoup moins de ressources physiques que les VM. Ça permet donc de pouvoir run si l’on souhaite des centaines de containers sur la même machine physique.
L’architecture de Docker
Les containers partagent le Kernel de la machine hôte, c’est le cœur qui manage les applications et les ressources d’une machine, chaque OS a son propre Kernel et ces Kernels ont différentes API : c’est ce qui explique pourquoi on ne peut pas run une application Windows sur un Mac par exemple, c’est parce que cette application a besoin de parler avec le Kernel.
Comment fonctionne concrètement Docker avec une application
On prend n’importe quelle application et pour qu’elle soit utilisable avec Docker, on ajoute un fichier qu’on appellera Dockerfile c’est un fichier plain text qui donne des instructions à Docker pour transformer l’application en image qui contient tout ce que l’appli a besoin pour fonctionner par exemple :
- Un système d’exploitation réduit
- Un environnement d’exécution
- Les fichiers de l’application
- Les librairies
- Les variables d’environnement
Une fois qu’on a l’image, on la donne à Docker pour créer un container à partir de cette image, elle est interprétée par Docker pour produire un container.
Une fois qu’on a cette image on la push sur un Docker Registry comme Docker Hub (c’est comme Github : c’est un endroit où on stocke les images Docker) et une fois qu’elles sont sur Docker Hub, on peut utiliser les images Docker sur n’importe quelle machine qui possède l’application.
Concernant l’installation
Pour m’aider à installer Docker j’ai suivi ce tutoriel : https://www.youtube.com/watch?v=XgRGI0Pw2mM

Puis j’ai suivi ces étapes :
Prérequis système
Mon Mac devait répondre à ces exigences :
- macOS 10.14 ou version ultérieure.
- Un processeur 64 bits (Intel ou Apple Silicon).
- Au moins 4 Go de RAM.
Étapes d'installation pour Docker sur Mac
- Créer un compte Docker
Va sur docker.com et crée un compte si tu n'en as pas déjà un.
- Télécharger Docker Desktop pour Mac
Une fois connecté, télécharge Docker Desktop pour Mac à partir de la page de téléchargement.
- Installer Docker Desktop
Ouvre le fichier
.dmg
téléchargé et fais glisser l'icône Docker dans le dossier "Applications". - Autoriser l'exécution de Docker
Si tu rencontres un avertissement de sécurité indiquant que l'application provient d'un développeur non identifié, va dans Préférences Système > Sécurité et confidentialité et autorise l'ouverture de Docker.
- Démarrer Docker
Une fois l'installation terminée, Docker devrait démarrer automatiquement.
