Skip to content
Snippets Groups Projects
Commit dc4bc151 authored by Mickael Masquelin's avatar Mickael Masquelin
Browse files

feat(swarm): Added exercise

parent 1733bb89
No related branches found
No related tags found
No related merge requests found
......@@ -323,3 +323,40 @@ Corrigez les erreurs remontées par le linter.
Reprenez le fichier `Dockerfile` que vous avez créé pour l'exercice 01 de la session 3 et soumettez le à Hadolint.
Corrigez les erreurs remontées par le linter.
## Exercice 06 : Les bases du clustering avec Docker Swarm
Nous allons faire un petit exercice qui permet de découvrir les bases de la scalabilité horizontale avec Docker. La première opération consiste à activer le mode Swarm pour Docker de la manière suivante :
```sh
$ docker swarm init
```
Une fois cette étape vérifiée, arrêtez cela et détruisez votre conteneur ... nous allons passer à la mise en oeuvre de la scalabilité. La commande ci-après permet de vérifier la composition de votre cluster Swarm :
```sh
$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
rfp5xn9ycgr95i6ocfkyj8xo3 * docker-desktop Ready Active Leader 26.1.4
```
La commande `docker service` est utilisée lors de la gestion d'un service individuel dans un cluster Swarm ([https://docs.docker.com/reference/cli/docker/service/(https://docs.docker.com/reference/cli/docker/service/)]).
Voici une idée de ce qu'un service peut définir comme comportement et état d'un conteneur :
- Le nom de l'image et le tag que les conteneurs du nœud doivent exécuter ;
- Combien de conteneurs participent au service ;
- Les ports à exposer à l'extérieur du cluster Swarm ;
- Comment doit agir le conteneur suite à une erreur ;
- Les caractéristiques des nœuds sur lesquels le service peut s'exécuter (telles que des contraintes de ressources et ou de préférence de placement sur tel ou tel nœud) ;
- etc ...
C'est déjà pas mal non ? Pour l'exemple nous souhaitons spécifier les comportements suivants :
- Un conteneur qui se base sur l'image https://hub.docker.com/r/traefik/whoami/.
- Trois conteneurs doivent être exécutés au minimum.
- Redémarrer le conteneur s'il se ferme suite à une erreur.
- Limiter l'utilisation de la mémoire à 100 Mo
- Mapper le port 5001 sur le port 80/tcp
Proposez une commande pour Swarm, à l'aide de la documentation en ligne, qui permet de réaliser le déploiement de ce service.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment