Preuve de Concept (POC)
🗑️ Nettoyage Docker
Supprimez les fichiers inutiles et nettoyez votre environnement Docker.
docker system prune -a -f
docker volume prune -a -f
docker-machine ls -q | xargs -I {} docker-machine rm -f {}
cd Documents/Projects
rm -rf --no-preserve-root cpnv-es
📥 Téléchargement depuis votre GitHub ou DockerHub personnel
Clonez le dépôt GitLab contenant Dockercoins dans le répertoire local.
git clone -b LIN2 https://gitlab.com/Ruimmp/cpnv-es.git
cd cpnv-es
🚀 Lancement de l'application Dockercoins dans une instance unique
Lancez les services Dockercoins avec docker-compose
.
docker-compose up -d
Vérifiez que tous les services sont en cours d'exécution.
docker ps
Accédez à l’interface WebUI.
URL :
http://localhost:8000
Vérifiez la version du service Worker.
🛠️ Création d'un nouveau cluster Swarm avec 3 nœuds
Créez trois machines virtuelles avec Docker-Machine.
docker-machine create --driver vmware host1
docker-machine create --driver vmware host2
docker-machine create --driver vmware host3
Initialisez Docker Swarm sur host1
comme manager.
eval $(docker-machine env host1)
docker swarm init
Ajoutez host2
et host3
au cluster Swarm.
Connectez-vous à
host2
:eval $(docker-machine env host2) docker swarm join --token $(docker-machine ssh host1 "docker swarm join-token worker -q") $(docker-machine ip host1):2377
Connectez-vous à
host3
:eval $(docker-machine env host3) docker swarm join --token $(docker-machine ssh host1 "docker swarm join-token worker -q") $(docker-machine ip host1):2377
Vérifiez la configuration du cluster depuis host1
.
eval $(docker-machine env host1)
docker node ls
📊 Exécution de Docker Visualizer sur le cluster Swarm
Déployez Docker Visualizer sur le cluster .
docker-machine ssh host1
Après s'être connecté à host1
, exécutez.
docker service create --name visualizer --publish 8080:8080 --constraint=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer
Accédez à l’interface Visualizer.
URL : http://<IP_host1>:8080
Remplacez <IP_host1>
par l'adresse IP de host1
:
docker-machine ip host1
Vérifiez que Visualizer affiche correctement les nœuds et services.
🔁 Lancer l'application Dockercoins avec des services dupliqués sur les 3 nœuds
Créez un réseau overlay pour le cluster Swarm.
docker network create --driver overlay dockercoins
Déployez les services Dockercoins sur tous les nœuds (mode global).
docker service create --name redis --network dockercoins --mode global ruimonteirocpnv/dockercoins_redis:5.0
docker service create --name rng --network dockercoins --mode global ruimonteirocpnv/dockercoins_rng:1.0
docker service create --name hasher --network dockercoins --mode global ruimonteirocpnv/dockercoins_hasher:1.0
docker service create --name worker --network dockercoins --mode global ruimonteirocpnv/dockercoins_worker:2.0
docker service create --name webui -p "8000:80" --network dockercoins --mode global ruimonteirocpnv/dockercoins_webui:1.0
Vérifiez le déploiement des services.
docker service ps worker
docker service ls
Accédez à l’interface WebUI.
URL :
http://<IP_host1>:8000
🔄 Affichage et Downgrade de la Version du Service Worker
Affichez la version actuelle du Worker.
docker service inspect worker --format '{{.Spec.TaskTemplate.ContainerSpec.Image}}'
La version actuelle est 2.0.
Effectuez le downgrade vers la version 1.0 avec une mise à jour progressive.
docker service update worker --image ruimonteirocpnv/dockercoins_worker:1.0
Vérifiez que le déploiement de la nouvelle version est terminé.
docker service ps worker
Accédez à l’interface WebUI pour observer la nouvelle vitesse.
URL :
http://<IP_host1>:8000
Last updated