Skip to main content

[Docker] Swarm

Introduction

Docker Swarm permet de faire de la répartition de charge et de la HA dans vos infrastructures Docker.

Pour cela, on va mettre en place un cluster de noeuds avec des managers et des workers (masters/slaves).

image.png

Prérequis

  • Avoir Docker installé sur tous les noeuds du cluster

Installation

Tout d'abord, rendez-vous sur votre Manager pour créer le cluster :

docker swarm init --advertise-addr <manager-IP>

Ensuite, il faut vous connecter sur chaque Workers pour les faire rejoindre votre cluster :

docker swarm join --token <TOKEN>

Le token a été affiché lors de la création du cluster sur le Manager sinon vous pouvez l'afficher avec cette commande :

docker swarm join-token worker

Et pour faire rejoindre des managers :

docker swarm join-token manager

Manuel

Afficher les membres du cluster

docker node ls

Déployer un conteneur dans le cluster

docker service create --name webserver -p 8080:80 nginx

Déployer une stack dans le cluster

docker stack deploy --compose-file compose.yml <STACK_NAME>

Afficher les services

docker service ls

Scale un service

docker service scale <SERVICE_NAME>=3

Supprimer une stack

docker stack rm <STACK_NAME>

Sortir un noeud du cluster

Sur le noeud :

docker swarm leave

S'il s'agit du dernier noeud Manager du cluster, spécifier --force pour supprimer le cluster.

Et depuis le Manager :

docker node rm <NODE_ID>