Créer un service Docker Swarm
Dans cette étape, nous apprendrons à créer un service Docker Swarm. Un service Docker Swarm est un ensemble de tâches qui s'exécutent sur un cluster Swarm. Chaque tâche est une instance d'un conteneur. Les services sont le concept central de Docker Swarm, vous permettant de définir combien de répliques d'une image de conteneur doivent être en cours d'exécution et comment elles doivent être mises à jour.
Avant de créer un service, nous devons initialiser un Docker Swarm. Étant donné que nous exécutons sur une seule machine virtuelle (VM), nous allons initialiser un Swarm à un seul nœud.
Tout d'abord, initialisons le Swarm :
docker swarm init --advertise-addr 127.0.0.1
Vous devriez voir un message indiquant que le Swarm a été initialisé et que le nœud actuel est maintenant un gestionnaire (manager).
Maintenant, créons un service en utilisant l'image nginx
. Nous nommerons le service my-nginx
et spécifierons que nous voulons 3 répliques du conteneur nginx
en cours d'exécution.
Tout d'abord, téléchargeons l'image nginx
pour nous assurer qu'elle est disponible localement :
docker pull nginx:latest
Maintenant, créons le service :
docker service create --name my-nginx --replicas 3 nginx:latest
Cette commande crée un nouveau service nommé my-nginx
avec 3 répliques en utilisant l'image nginx:latest
. Docker Swarm distribuera automatiquement ces répliques sur les nœuds du Swarm (dans ce cas, juste notre seul nœud).
Pour vérifier que le service a été créé et que les répliques sont en cours d'exécution, vous pouvez lister les services :
docker service ls
Vous devriez voir my-nginx
répertorié avec 3/3 répliques en cours d'exécution.
Vous pouvez également inspecter les tâches associées au service :
docker service ps my-nginx
Cette commande vous montrera les tâches individuelles (conteneurs) qui composent le service my-nginx
, leur état actuel et le nœud sur lequel elles s'exécutent. Vous devriez voir 3 tâches dans l'état Running
.