Contexte : préparer un cluster Docker Swarm sur lequel déployer l'agent Portainer, pour administrer plusieurs hôtes Docker depuis une seule interface · Testé sur : VM Linux avec Docker Engine · Dernière vérification : contenu de 2023 non revérifié
Regrouper plusieurs machines Docker en un cluster Docker Swarm, première étape pour y déployer Portainer Agent. L'agent, installé sur chaque nœud du cluster, permet ensuite à un serveur Portainer de gérer l'ensemble des nœuds à distance.
2377 (gestion du cluster), TCP et UDP 7946 (communication entre nœuds), UDP 4789 (réseau overlay).Sur la VM manager, créez le cluster en indiquant l'adresse IP sur laquelle les autres nœuds la joindront :
docker swarm init --advertise-addr <IP_MANAGER>
Toujours sur le manager, affichez la commande d'adhésion pour les nœuds workers :
docker swarm join-token worker
Elle ressemble à ceci :
docker swarm join --token <JETON_SWARM> <IP_MANAGER>:2377
Ce jeton permet à n'importe quelle machine de rejoindre le cluster : ne le publiez pas et ne le conservez pas dans un document partagé.
Copiez la commande obtenue à l'étape précédente et exécutez-la sur chaque VM qui doit rejoindre le cluster.
Sur le manager, listez les nœuds du cluster :
docker node ls
Chaque VM apparaît avec l'état
Ready; le manager porte la mentionLeader.
La version d'origine de cette page s'arrête à la création du cluster. Le déploiement de l'agent se fait ensuite sous forme de pile (stack) Swarm, avec le fichier fourni par Portainer : suivez la documentation officielle, qui donne la commande à jour pour chaque version. L'agent écoute par défaut sur le port TCP
9001, que le serveur Portainer doit pouvoir joindre.
| Symptôme | Cause probable | Solution |
|---|---|---|
La commande join échoue ou expire |
Port 2377 filtré, ou adresse annoncée injoignable |
Ouvrez les ports de Swarm entre les VM et vérifiez l'adresse passée à --advertise-addr |
| Jeton perdu ou compromis | — | Réaffichez-le avec docker swarm join-token worker, ou renouvelez-le avec docker swarm join-token --rotate worker |