Concepts de base
Sous Docker, il est important de comprendre les différentes parties que seront utilisées par la suite
Images Docker
Une image Docker est un modèle immuable qui contient le code source de l'application, les bibliothèques, les dépendances, et tous les éléments nécessaires pour exécuter l'application. Elle sert de base pour créer des conteneurs.
Création d'images
: pour créer une image, un Dockerfile est nécessaire. C'est un fichier texte qui contient les instructions pour construire l'image.Gestion d'images
: utilisez la commandedocker images
pour lister les images disponibles, etdocker rmi
suivi du nom de l'image pour la supprimer.
Conteneurs Docker
Un conteneur est une instance exécutable d'une image Docker. Il encapsule l'application et son environnement d'exécution.
Création de conteneurs
: utilisez la commandedocker run
suivi du nom de l'image pour créer et démarrer un conteneur.Gestion de conteneurs
:docker ps
liste les conteneurs actifs,docker stop
suivi du nom du conteneur l'arrête, etdocker rm
le supprime.
Volumes
Les volumes sont des systèmes de stockage persistants utilisés par Docker pour stocker les données des conteneurs. Ils permettent de garder les données même après la suppression d'un conteneur.
Création de volumes
: utilisezdocker volume create
suivi du nom du volume pour créer un volume.Gestion de volumes
:docker volume ls
liste les volumes, etdocker volume rm
suivi du nom du volume le supprime.
Réseaux
Docker permet de créer des réseaux pour la communication entre conteneurs.
Création de réseaux
: utilisezdocker network create
suivi du nom du réseau pour créer un réseau.Gestion de réseaux
:docker network ls
liste les réseaux, etdocker network rm
suivi du nom du réseau le supprime.
Dans l'ensemble, les commandes que vous utiliserez sont assez similaires et utilisent des mots clés connus tels que ls
, rm
...
Gestion des réseaux
Dans Docker, connecter un conteneur à plusieurs réseaux peut extrêmement être utile pour séparer les préoccupations ou les aspects de votre application. Par exemple, supposons que vous ayez une application web qui se compose d'une base de données, d'un backend, et d'un frontend. Vous pouvez créer trois réseaux séparés : reseau-db
pour la base de données, reseau-backend
pour le backend, et reseau-frontend
pour le frontend. Vous pouvez ensuite connecter votre conteneur backend à reseau-db
et reseau-frontend
pour qu'il puisse communiquer avec la base de données et le frontend respectivement, tout en maintenant une séparation nette des préoccupations.
Créez les trois réseaux :
docker network create reseau-db
docker network create reseau-backend
docker network create reseau-frontend
Lancez votre conteneur backend et connectez-le au réseau reseau-db
:
docker run --name mon-backend --network=reseau-db -d mon-image-backend
Ensuite, connectez le conteneur backend au réseau reseau-frontend
:
docker network connect reseau-frontend mon-backend
Avec cette configuration, votre conteneur backend peut maintenant communiquer avec la base de données sur reseau-db
et avec le frontend sur reseau-frontend
, tout en maintenant une séparation claire, ce qui facilite la gestion et le débogage de votre application.
Ceci est un exemple un peu sommaire, mais permet d'expliquer le concept de réseau sous Docker. Vous verrez plus tard comment relier les conteneurs entre eux.