Skip to content

Volumes

HAPROXY

Reprendre l’exercice HPROXY

  • lancer les conteneurs avec les images standards
  • pour modifier les fichiers index.html et haproxy.cfg, on passe par le montage de volumes des répertoires et fichiers créés précédemment :

Lancer les serveurs web1 et web2

Solution

Terminal window
$ docker run -d --network=web --name=web1 -v /home/centos/web1:/usr/share/nginx/html nginx:1.19-alpine
$ docker run -d --network=web --name=web2 -v /home/centos/web2:/usr/share/nginx/html nginx:1.19-alpine

Lancer le haproxy :

Solution

Terminal window
$ docker run -d --network=web --name=myhaproxy -p 80:80 -v /home/centos/myhapoxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg haproxy:1.7

Disque Local

Créer une partition sur le disk /dev/sdb

Solution

Terminal window
$ sudo fdisk /dev/sdb
Commande (m pour l'aide) : n
Type de partition :
p primaire (1 primaire(s), 0 étendue(s), 3 libre(s))
e étendue
Sélection (p par défaut) : return
Numéro de partition (1-4, 1 par défaut) : return
Premier secteur (2048-16777215, 2048 par défaut) : return
Dernier secteur, +secteur ou +taille{K,M,G} (2048-16777215, 16777215 par défaut) : return
Commande (m pour l'aide: w
Terminal window
$ sudo mkfs.xfs /dev/sdb1

Créer un volume sur le disk /dev/sdb1

Solution

Terminal window
$ docker volume create \
--opt type=xfs \
--opt device=/dev/sdb1 \
sdb1

Créer un conteneur mysql et monter le volume :

Solution

Terminal window
$ docker run -it -d -e MYSQL_ROOT_PASSWORD=my-secret-p -v sdb1:/var/lib/mysql mysql:8.0

Volume NFS

Créer un volume NAS

Solution

Terminal window
$ docker volume create \
--opt type=nfs \
--opt o=addr=192.168.98.1 \
--opt device=:/home/shares/user11 \
nfs_web

Créer un conteneur producteur

Créer ume image producteur

Solution

Terminal window
$ vi Dockerfile
Terminal window
FROM alpine:3.17
COPY cmd.sh /
CMD ["/cmd.sh"]

Solution

Terminal window
$ vi cmd.sh
#!/bin/sh
while true
do
echo `date` : `hostname` >> /mnt/index.html
sleep 60
done

Solution

Terminal window
$ docker build -t producteur .

Lancer le producteur

Solution

Terminal window
$ docker run -it -d -v nfs_web:/mnt producteur

Lancer le consomateur

Solution

Terminal window
$ docker run -it -d -p 80:80 -v nfs_web:/usr/share/nginx/html nginx:1.23-alpine