1. Qu'est-ce que Docker ?
Docker est un outil qui permet de "containeriser" des applications. Cela signifie que tu peux
emballer une application et toutes ses dépendances (bibliothèques, logiciels nécessaires,
etc.) dans un "conteneur". Ce conteneur peut être exécuté partout, peu importe
l'environnement, car il contient tout ce dont l'application a besoin pour fonctionner.
Pourquoi utiliser Docker ?
● Portabilité : Une fois ton application dans un conteneur, elle peut être exécutée sur
n'importe quelle machine, que ce soit ton ordinateur, un serveur distant, ou dans le
cloud.
● Isolation : Chaque conteneur est isolé des autres, ce qui signifie que plusieurs
applications peuvent tourner en parallèle sans se déranger.
● Facilité de déploiement : Les conteneurs peuvent être facilement déployés, copiés
et partagés.
2. Les concepts clés de Docker
● Image : Une image Docker est comme un modèle pour créer un conteneur. Elle
contient tout ce qui est nécessaire pour exécuter une application (code,
bibliothèques, configurations, etc.).
● Conteneur : Un conteneur est une instance en cours d'exécution d'une image
Docker. C'est un environnement léger où l'application tourne.
● Dockerfile : C'est un fichier texte qui contient une série d'instructions permettant de
créer une image Docker. Par exemple, quelle version de Python utiliser, quel code
copier, etc.
3. Qu'est-ce que Docker Compose ?
Docker Compose est un outil qui te permet de définir et d'exécuter des applications
multi-conteneurs. Si tu veux faire tourner plusieurs conteneurs qui interagissent entre eux
(par exemple une application web et une base de données), Docker Compose simplifie cette
tâche.
Avec Docker Compose, tu crées un fichier appelé docker-compose.yml dans lequel tu
définis tous les conteneurs nécessaires, leurs configurations, leurs connexions, etc. Ensuite,
tu utilises une simple commande pour démarrer tout le système.
Pourquoi utiliser Docker Compose ?
● Facilité de gestion : Plutôt que de démarrer chaque conteneur manuellement avec
plusieurs commandes, Docker Compose te permet de gérer tout avec une seule
commande.
● Configuration simplifiée : Tu peux définir tout ton environnement dans un fichier
(services, réseaux, volumes), ce qui permet de reproduire facilement l'environnement
de développement, de test ou de production.
4. Exemple pratique avec Docker et Docker Compose
Disons que tu veux créer une application web qui utilise une base de données MySQL. Voici
ce que tu fais :
Créer un Dockerfile (pour l'application web) :
dockerfile
CopierModifier
FROM python:3.8
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
1.
Créer un fichier docker-compose.yml pour configurer les deux conteneurs (l'application
web et MySQL) :
yaml
CopierModifier
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
2.
3. Lancer l'application avec Docker Compose :
Dans le terminal, tu vas dans le répertoire où tu as ton fichier docker-compose.yml et tu
tapes la commande suivante :
bash
CopierModifier
docker-compose up
○
4. Cela va automatiquement télécharger les images nécessaires (comme MySQL),
construire l'image pour ton application web, puis démarrer les deux conteneurs.
5. Commandes Docker de base
Voici quelques commandes de base que tu peux utiliser avec Docker :
docker run : Démarre un conteneur à partir d'une image.
bash
CopierModifier
docker run hello-world
●
● docker ps : Liste les conteneurs en cours d'exécution.
docker build : Crée une image à partir d'un Dockerfile.
bash
CopierModifier
docker build -t mon-image .
●
● docker-compose up : Lance les services définis dans docker-compose.yml.
● docker-compose down : Arrête et supprime les conteneurs lancés par Docker
Compose.
En résumé :
● Docker permet d'exécuter des applications dans des conteneurs portables et isolés.
● Docker Compose permet de gérer des applications composées de plusieurs
services (par exemple une base de données et une application web).