Lister tous les services d'une pile
Dans cette étape, vous apprendrez à lister tous les services en cours d'exécution au sein d'une pile Docker (Docker stack). Avant de pouvoir lister les services, nous devons avoir une pile en cours d'exécution. Étant donné que Docker Compose n'est pas préinstallé, nous l'installerons d'abord, puis nous déploierons une simple pile.
Tout d'abord, installons Docker Compose. Nous téléchargerons le binaire et le rendrons exécutable.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Maintenant que Docker Compose est installé, créons un simple fichier docker-compose.yml
pour définir notre pile. Nous créerons un fichier nommé docker-compose.yml
dans le répertoire ~/project
.
nano ~/project/docker-compose.yml
Ajoutez le contenu suivant au fichier :
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: alpine:latest
command: sleep 3600
Ce fichier définit une pile avec deux services : web
utilisant l'image nginx
et app
utilisant l'image alpine
. Le service web
mappe le port 80 de l'hôte sur le port 80 du conteneur. Le service app
exécute simplement la commande sleep 3600
pour maintenir le conteneur en cours d'exécution.
Enregistrez le fichier et quittez l'éditeur (Ctrl+X, Y, Entrée dans nano).
Maintenant, déployons la pile à l'aide de docker stack deploy
. Nous nommerons notre pile mystack
.
docker stack deploy -c ~/project/docker-compose.yml mystack
Cette commande lit le fichier docker-compose.yml
et crée les services définis à l'intérieur en tant que pile Docker nommée mystack
. Vous devriez voir une sortie indiquant que les services sont en cours de création.
Une fois que la pile est déployée, vous pouvez lister tous les services de la pile en utilisant la commande docker stack services
suivie du nom de la pile.
docker stack services mystack
Cette commande affichera un tableau montrant des informations sur les services de la pile mystack
, y compris leur ID, leur nom, leur mode, leur nombre de répliques, leur image et leurs ports.
Vous devriez voir une sortie similaire à celle-ci :
ID NAME MODE REPLICAS IMAGE PORTS
xxxxxxxxxxxx mystack_app replicated 1/1 alpine:latest
xxxxxxxxxxxx mystack_web replicated 1/1 nginx:latest *:80->80/tcp
La sortie liste les services mystack_app
et mystack_web
, confirmant qu'ils sont en cours d'exécution dans le cadre de la pile mystack
.