TP1: Corrections and rephrasing

This commit is contained in:
nemunaire 2022-09-15 11:07:41 +02:00
commit 651283b526
6 changed files with 150 additions and 30 deletions

View file

@ -3,29 +3,25 @@
Stockage de données applicatives
================================
Le concept principal de Docker est de concevoir des conteneurs applicatifs: on
va préférer assigner un unique rôle à un conteneur (donc généralement on ne va
lancer qu'une seule application par conteneur) et concevoir un service complet
en créant un groupe de conteneurs, partageant des données entre eux par des
volumes.
Il est généralement toujours possible d'écrire dans le système de fichier de
notre conteneur. (Cela n'affecte pas l'image, chaque conteneur est démarré à
partir de l'image originale.) Cependant, il n'est pas recommandé de chercher à
stocker des données ainsi. En effet, il n'est pas aisé de récupérer ces données
une fois l'exécution du conteneur terminée; les données peuvent même être
détruite si on a lancé le conteneur avec l'option `--rm`.
Il est possible d'utiliser la dernière couche en lecture/écriture pour inscrire
des données. Il n'est cependant pas recommandé de stocker des données de cette
manière, car elles ne vont pas persister une fois que le conteneur aura terminé
son exécution ; elles seront alors plus compliquées à retrouver manuellement.
Docker met à notre disposition plusieurs mécanismes pour que les données de nos
applications persistent et soient prêtes à migrer plus facilement vers une
solution plus apte à la décentralisation.
Docker met donc à notre disposition plusieurs mécanismes pour que les données
de nos applications persistent et soient prêtes à être migrées d'un conteneur à
l'autre.
## Partage avec la machine hôte
Il est possible de monter un répertoire de la machine hôte dans un
Il est possible de partager un répertoire de la machine hôte avec un
conteneur. L'intérêt reste plutôt limité à des fins de facilité ou de test, par
exemple si vous voulez partager des fichiers avec votre voisin, en passant par
le protocole HTTP, mais sans se casser la tête à installer et configurer un
serveur web:
exemple si vous voulez partager des fichiers en passant par le protocole HTTP,
mais sans se casser la tête à installer et configurer un serveur web, vous
pourriez utiliser:
<div lang="en-US">
```bash
@ -33,14 +29,17 @@ docker run --rm -p 80:80 -v ~/Downloads:/usr/share/nginx/html:ro -d nginx
```
</div>
Une fois cette commande lancée, votre voisin pourra accéder à votre dossier
Downloads en renseignant l'IP de votre machine dans son navigateur favori!
Une fois le conteneur lancé, vous pourrez accéder à votre dossier *Downloads*
en renseignant l'IP de votre machine dans un navigateur!
::::: {.warning}
Par défaut, `nginx` ne va pas permettre de lister le contenu du répertoire (et
va afficher une page 404, car il cherche un fichier `index.html` dans votre
répertoire). Vous pouvez par contre accéder à un fichier directement, par
exemple: <http://10.42.12.23/dQw4w9WgXcQ.mp4>
:::::
## Les volumes
@ -77,9 +76,12 @@ docker container run --name mydb -e MYSQL_ROOT_PASSWORD=my-secret-pw \
```
</div>
Lorsque le volume est vide, si des données sont présentes à l'endroit du point
de montage, celles-ci sont recopiées dans le volume.
::::: {.question}
Lorsque le volume est vide, si des données sont présentes dans l'image à
l'endroit du point de montage, celles-ci sont recopiées dans le volume.
:::::
## Volumes temporaires