Stack

Commandes courantes

deploy : Permet de créer une stack à partir d'un fichier Docker-Compose

ls : Liste les stacks déployées

ps : Liste les tâches d'une stack (c-a-d l'ensemble des tâches de chaque services de la stack)

rm : Supprime une stack et l'ensemble de ces services

services : Liste l'ensemble des services d'une stack

Déploiement d'une application sur un swarm et via une stack

Téléchargement de l'image Voting App

git clone https://github.com/docker/example-voting-app/ && cd example-voting-app

Création d'une stack

# sudo docker stack deploy -c docker-stack.yml vote
Creating network vote_frontend
Creating network vote_backend
Creating network vote_default
Creating service vote_redis
Creating service vote_db
Creating service vote_vote
Creating service vote_result
Creating service vote_worker
Creating service vote_visualizer

Visualisation des stacks déployées

# sudo docker stack ls
NAME SERVICES ORCHESTRATOR
vote 6 Swarm

Affichage de la liste des tâches de la stack vote

# sudo docker stack ps vote
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
beq2fa5ztw0w vote_visualizer.1 dockersamples/visualizer:stable node2 Running Preparing 2 minutes ago
np3bikt5tvhh vote_worker.1 dockersamples/examplevotingapp_worker:latest node4 Running Preparing 2 minutes ago
pkr1948ak5y1 vote_result.1 dockersamples/examplevotingapp_result:before node2 Running Preparing 3 minutes ago
qqkijl5pqgwu vote_vote.1 dockersamples/examplevotingapp_vote:before node2 Running Running about a minute ago
zmncq4ma2899 vote_db.1 postgres:9.4 node4 Running Preparing 3 minutes ago
a4y8dhzpt6lo vote_redis.1 redis:alpine node1 Running Running 3 minutes ago
xowah2fxjove vote_vote.2 dockersamples/examplevotingapp_vote:before node1 Running Running 2 minutes ago

Affichage de l'ensemble des services de la stack vote

# sudo docker stack services vote
ID NAME MODE REPLICAS IMAGE PORTS
38d6ww1if2it vote_worker replicated 0/1 dockersamples/examplevotingapp_worker:latest
51vnolhf4rdc vote_result replicated 1/1 dockersamples/examplevotingapp_result:before *:5001->80/tcp
i1307cns60ra vote_vote replicated 2/2 dockersamples/examplevotingapp_vote:before *:5000->80/tcp
l3jvl33xgetq vote_redis replicated 1/1 redis:alpine
qgujbaswgsr8 vote_visualizer replicated 1/1 dockersamples/visualizer:stable *:8080->8080/tcp
wh1j213kwlh8 vote_db replicated 1/1 postgres:9.4

Suppression de la stack vote

# sudo docker stack rm vote
Removing service vote_db
Removing service vote_redis
Removing service vote_result
Removing service vote_visualizer
Removing service vote_vote
Removing service vote_worker
Removing network vote_backend
Removing network vote_frontend
Removing network vote_default