Files
DEV/DEV.DOCKER/TP2/COMMANDS.md
T
EmmanuelTiamzon d12a1adb6d ajout dev docker
2026-06-04 18:57:15 +02:00

4.0 KiB
Raw Blame History

TP2 : Volumes et bind-mounts

Exercice 1 : Docker volumes

Rapatrier limage officielle du serveur web apache (httpd)

[srivasta@salle234-09 TP2]$ docker pull httpd:alpine3.17
alpine3.17: Pulling from library/httpd
f56be85fc22e: Pull complete 
3b0762594298: Pull complete 
d57f06c5a70c: Pull complete 
add4d5bc8a71: Pull complete 
ae430e2a98db: Pull complete 
36d8ddf7fbf3: Pull complete 
Digest: sha256:03c154f29d68648c335a19c8bfca1562251bc8af534e10c6f87361551c381d21
Status: Downloaded newer image for httpd:alpine3.17
docker.io/library/httpd:alpine3.17

Créer un volume

docker volume create volume_serveur_web #on crée le volume
docker run --rm -v volume_serveur_web:/data alpine sh -c 'echo "<!DOCTYPE html><html><title>C MOI</title><body><h1>Emmanuel</h1></br><p>SRIVASTAVA-TIAMZON</p></body></html>" >> /data/index.html' # On crée le volume qui contient le fichier html demandé.

docker run -d --name volume_serveur_web_stat -v volume_serveur_web:/usr/local/apache2/htdocs/ -p 6767:80 httpd # On crée le volume temporaire qui prend le volume web et on crée le lien qui va avec en respectant les normes
firefox http://localhost:6767/ # On consulte le fichier index.html

Photo de la page web

Démarrer un conteneur

docker run -d --name tp21  httpd # Démarrer un conteneur en mode détaché nommé tp21
# 933f36f8b9bb2ebac8e1a909d2174023445d6e38abfacd41cb45effdb4453450

docker run -d --name tp22 -v volume_serveur_web:/usr/local/apache2/htdocs/ httpd:alpine3.17 # Démarrer un conteneur en mode détaché en montant le volume précédemment créé nommé tp22
# 28fa428591cbb76279093082f554753b54d0e7c64491d5d1faceb41c5c9ef598

docker run -d --name tp23 -v volume_serveur_web:/usr/local/apache2/htdocs/ -p 8080:80 httpd:alpine3.17 # Démarrer un conteneur en mode détaché en montant le volume précédemment créé et en exposant le port 80 nommé tp23
# 247b80255b2ac69bdb85f76c4c8b8d2423cacd41a5ebdd8e10c791602ce10841

Exercice complémentaire

Créer un deuxième volume nommé backup_web Copier le contenu du premier volume vers ce nouveau volume Démarrer un conteneur tp24 qui monte les deux volumes simultanément.

docker volume create backup_web # backup_web
docker run -d --name tp24 -v volume_serveur_web:/usr/local/apache2/htdocs/ -v backup_web:/backup httpd:alpine3.17
# 0622eae7a25de9a2d11456e58f48091eda488d3ca7bce813ee872a2ed4adaaf0

Exercice 2 : Docker bind mounts

Pour cet exercice l'arborescence web a été crée avec un index.html, un style.jss et un script.js.

# Démarrer un conteneur en mode détaché nommé tp25 qui monte le dossier web local dans /usr/local/apache2/htdocs
docker run -d --name tp25 -v "$PWD"/web/:/usr/local/apache2/htdocs httpd:alpine3.17
# 071b845b325823e3720ab0ec89e42f429d1c9dac928ea342fa425b911603f0cb

# Démarrer un conteneur en mode détaché nommé tp26 qui monte le dossier web et expose le port 8080
docker run -d --name tp26 -v "$PWD"/web/:/usr/local/apache2/htdocs/web/ -p 8080:80 httpd:alpine3.17
# 0fe9b31d025df32c42dea857403952ce988fbc7ac858430e64fb837e8ab2fce4

# Démarrer un conteneur en mode détaché nommé tp27 qui monte uniquement le fichier index.html (et non tout le dossier)
docker run -d --name tp27 -v "$PWD"/web/index.html/:/usr/local/apache2/htdocs/index.html httpd:alpine3.17
# 7b0bad50feff61a4d6dd37c17b7d0f0617ec1837bce88583d0794b3c70414064

Exercice complémentaire

# 1. Modifier le fichier index.html directement sur votre machine
nano/vim web/index.html # pour apporter une modif

# 2. Vérifier que les changements sont visibles dans le conteneur
docker exec tp26 cat /usr/local/apache2/htdocs/index.html

# 3. Créer un nouveau fichier about.html dans le dossier web
touch /web/about.html

# 4. Vérifier qu'il est automatiquement accessible dans le conteneur
docker exec tp26 ls /web/