Docker service
| Fiche express | |
|---|---|
| Type | Sous-commande Swarm — définition et cycle de vie des services |
| Modes | Répliqué (replicated) · Global |
| Portée | À exécuter sur un manager |
| Voir aussi | Docker swarm · Docker node · Docker stack |
Un service Swarm est la ressource qui décrit une charge de travail à faire tourner sur le cluster Swarm : image, nombre de répliques, ports publiés, contraintes de placement, etc. Le planificateur (scheduler) du manager se charge de créer, surveiller et remplacer les tâches (conteneurs) correspondantes sur les nœuds disponibles.
Créer et gérer un service
docker service create nginx
docker service create --name nginx --replicas 3 -p 8080:80 nginx
Un service peut exposer aux conteneurs des variables basées sur des templates (par exemple le nom du nœud hôte) :
docker service create --name nginx --replicas 3 \
--env NODE_HOSTNAME="{{.Node.Hostname}}" nginx
docker exec <ID_CONTENEUR> printenv
Lister, inspecter, mettre à jour, supprimer :
docker service ls
docker service inspect nginx
docker service update --replicas 2 nginx
docker service rm nginx
Mode global
Le mode global fait tourner exactement une instance du service sur chaque nœud du cluster (utile pour un agent de supervision ou un collecteur de logs, par exemple), à l'opposé du mode répliqué où l'on fixe un nombre de répliques indépendant du nombre de nœuds :
docker service create --name nginx --mode global nginx
Scaling
Deux syntaxes équivalentes pour changer le nombre de répliques d'un service :
docker service update --replicas 3 nginx
docker service scale nginx=4
docker service ps nginx
Voir aussi
- Docker swarm — vue d'ensemble du cluster
- Docker node — étiquetage et contraintes de placement
- Docker stack — déployer un ensemble de services à partir d'un fichier compose