Docker service

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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