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

80 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TP2 : Volumes et bind-mounts
## Exercice 1 : Docker volumes
### Rapatrier limage officielle du serveur web apache (httpd)
```shell
[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
```shell
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](image.png)
### Démarrer un conteneur
```shell
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.
```shell
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](./web) a été crée avec un [index.html](./web/index.html), un [style.jss](./web/style.css) et un [script.js](./web/script.js).
```shell
# 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
```shell
# 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/
```