Docker Compose est un outil puissant et populaire utilisé pour gérer et déployer des applications basées sur Docker. Il vous permet de définir, de configurer et d'exécuter plusieurs Docker conteneurs en tant que projet unique, simplifiant le déploiement d'applications et garantissant la cohérence entre les environnements de développement et de production.
Voici quelques concepts et exemples de Docker Compose:
Définissez le projet à l'aide du fichier docker-compose.yml
Dans le docker-compose.yml
fichier, vous pouvez définir les services nécessaires à votre application. Par exemple, pour déployer une application web PHP avec une base de données MySQL, vous pouvez définir deux services comme suit:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
Dans l'extrait de code ci-dessus, nous définissons deux services : web
et db
. Le web
service utilisera PHP 7.4 image avec Apache, écoutera sur le port 80 et montera le ./app
répertoire de l'hôte dans le /var/www/html
répertoire du container. Le db
service utilisera MySQL 5.7 image et définira certaines variables d'environnement requises pour la base de données.
Utilisation Docker Compose de la commande
Une fois que vous avez défini le projet dans le docker-compose.yml
fichier, vous pouvez utiliser Docker Compose des commandes pour gérer les services.
-
Démarrez le projet :
docker-compose up
Cette commande démarrera les conteneurs pour les services définis dans le
docker-compose.yml
fichier. -
Arrêtez et retirez les conteneurs :
docker-compose down
Cette commande arrête et supprime tous les conteneurs liés au projet.
-
Répertorier les conteneurs en cours d'exécution :
docker-compose ps
Cette commande affichera l'état des conteneurs dans le projet.
-
Afficher les journaux de service :
docker-compose logs
Cette commande affiche les journaux des services du projet.
Variables d'environnement et personnalisation
Docker Compose vous permet d'utiliser des variables d'environnement pour personnaliser les configurations pour différents environnements, tels que le développement et la production. Vous pouvez utiliser des variables d'environnement dans le docker-compose.yml
fichier et définir leurs valeurs dans .env
les fichiers correspondants.
Par exemple, si vous souhaitez définir une variable d'environnement pour le port du web
service, vous pouvez ajouter une ligne au .env
fichier comme celle-ci :
WEB_PORT=8080
Ensuite, dans le docker-compose.yml
fichier, vous pouvez utiliser cette variable d'environnement comme ceci :
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Lors de l'exécution de la docker-compose up
commande, le web
service écoutera sur le port 8080 au lieu du port 80.
Intégration avec Docker Swam
Si vous souhaitez déployer votre application sur un environnement distribué avec plusieurs nœuds, Docker Compose vous pouvez l'intégrer à Docker Swarm. Cela vous permet de gérer des services sur plusieurs nœuds dans un Docker cluster.
Pour utiliser cette intégration, il vous suffit d'ajouter les options --orchestrate
ou lors de l'exécution de commandes ou dans un environnement. --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose est un outil utile pour le développement, le test et le déploiement simples et efficaces d'applications. Il minimise les différences entre les environnements de développement et de production, assure la cohérence du processus de développement logiciel et améliore la productivité des équipes de développement.