Déployer sur Swarm
Cette page explique comment déployer votre application Docker Compose sur un cluster Docker Swarm.
Présentation
Docker Swarm mode vous permet de déployer et de gérer des applications multi-conteneurs à travers un cluster de machines Docker. Compose peut être utilisé pour définir l'application et la déployer sur Swarm.
Prérequis
- Un cluster Docker Swarm configuré
- Docker Compose installé
- Un fichier
compose.yaml
valide
Configuration du Swarm
Si vous n'avez pas encore de cluster Swarm, initialisez-le :
$ docker swarm init
Déploiement avec docker stack
Pour déployer votre application Compose sur Swarm, utilisez docker stack
:
$ docker stack deploy -c compose.yaml myapp
Cette commande :
- Lit votre fichier
compose.yaml
- Crée les services sur le cluster Swarm
- Gère l'orchestration et la mise à l'échelle
Gestion des services
Listez vos services déployés :
$ docker stack services myapp
Visualisez les tâches de votre stack :
$ docker stack ps myapp
Mise à jour
Pour mettre à jour votre déploiement :
$ docker stack deploy -c compose.yaml myapp
Docker Swarm gère automatiquement le déploiement progressif.
Suppression
Pour supprimer la stack complète :
$ docker stack rm myapp
Différences avec docker compose
Quand vous déployez sur Swarm :
- Certaines options Compose ne sont pas supportées
- La section
deploy
devient importante pour la configuration Swarm - Les volumes et réseaux sont gérés au niveau du cluster
Configuration avancée
Mise à l'échelle
Utilisez la section deploy
pour configurer la mise à l'échelle :
services:
web:
image: nginx
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
Contraintes de placement
Contrôlez où vos conteneurs s'exécutent :
services:
db:
image: postgres
deploy:
placement:
constraints:
- node.role == manager