Aller au contenu

Quiz du chapitre 5 : Volumes et persistance

Consignes

Autoévaluation : 10 questions, environ 10 minutes. Chaque question a une seule bonne réponse. Répondez d'abord de mémoire, puis cliquez sur « Réponse » pour vérifier. En cas d'erreur, relisez la section indiquée du cours.

Question 1. Que deviennent les données écrites dans la couche d'écriture d'un conteneur lorsque ce conteneur est supprimé ?

  • A. Elles sont copiées dans l'image
  • B. Elles sont envoyées automatiquement au registre
  • C. Elles restent dans le dossier courant de l'hôte
  • D. Elles sont supprimées avec lui
Réponse

D. La couche d'écriture est propre au conteneur et disparaît avec lui. L'image n'est jamais modifiée. Pour conserver des données, il faut les stocker hors du conteneur (section 1).

Question 2. Quel type de montage est créé et géré par Docker, et constitue le choix par défaut pour les données d'une application ?

  • A. Le volume nommé
  • B. Le bind mount
  • C. Le montage tmpfs
  • D. L'instruction COPY du Dockerfile
Réponse

A. Un volume nommé est géré par Docker, survit à la suppression du conteneur et convient aux données applicatives comme une base de données (sections 2 et 3).

Question 3. Où sont stockées les données d'un montage tmpfs ?

  • A. Dans un volume nommé
  • B. Dans un dossier choisi de l'hôte
  • C. En mémoire vive de l'hôte, jamais sur disque
  • D. Dans une couche de l'image
Réponse

C. Un montage tmpfs stocke les données en mémoire ; elles disparaissent à l'arrêt du conteneur. Il convient aux données temporaires ou sensibles (section 5).

Question 4. Quelle option monte le volume donnees sur le dossier /var/lib/app d'un conteneur ?

  • A. -v /var/lib/app:donnees
  • B. -v donnees:/var/lib/app
  • C. --tmpfs donnees:/var/lib/app
  • D. -p donnees:/var/lib/app
Réponse

B. La forme est -v nom-du-volume:/chemin/dans/le/conteneur : la source est à gauche, la destination dans le conteneur à droite (section 3.2).

Question 5. Quelle affirmation sur un bind mount est exacte ?

  • A. Il est géré entièrement par Docker, et son emplacement est invisible
  • B. Il ne peut jamais être monté en lecture seule
  • C. Il stocke ses données en mémoire vive
  • D. Il relie un dossier choisi de l'hôte à un dossier du conteneur, dont le contenu masque ce que l'image contenait à cet emplacement
Réponse

D. Le bind mount utilise un dossier de l'hôte que vous choisissez et gérez. Il peut être monté en lecture seule avec :ro, et son contenu remplace ce que l'image avait à l'emplacement monté (section 4).

Question 6. Vous supprimez un conteneur qui avait été lancé avec -v donnees:/data. Que devient le volume donnees ?

  • A. Il existe toujours, avec ses données
  • B. Il est supprimé automatiquement
  • C. Il est vidé, mais conservé
  • D. Il devient un volume anonyme
Réponse

A. Un volume a sa propre vie, indépendante de celle des conteneurs : seule la commande docker volume rm (ou un nettoyage explicite) le supprime (section 3.3).

Question 7. Pourquoi faut-il éviter les volumes anonymes ?

  • A. Ils sont beaucoup plus lents que les volumes nommés
  • B. Ils ne peuvent pas contenir de données
  • C. Ils portent un nom aléatoire, restent après la suppression du conteneur et sont difficiles à identifier
  • D. Docker interdit leur utilisation
Réponse

C. Un volume anonyme est créé, par exemple, quand une image déclare un emplacement de données et que l'on ne précise pas de volume. Il reste ensuite sur la machine comme volume orphelin. Un volume nommé est facile à identifier et à gérer (section 3.4).

Question 8. Un dossier de l'hôte n'existe pas. Quelle est la différence de comportement entre -v et --mount type=bind ?

  • A. -v signale une erreur, alors que --mount crée le dossier
  • B. -v crée silencieusement le dossier, alors que --mount type=bind signale une erreur
  • C. Les deux créent le dossier
  • D. Les deux signalent une erreur
Réponse

B. Avec -v, une faute de frappe dans le chemin crée un nouveau dossier sans avertissement. Avec --mount, Docker signale l'erreur : cette syntaxe est plus explicite (section 6).

Question 9. Comment sauvegarder le contenu d'un volume sans connaître son emplacement sur l'hôte ?

  • A. Lancer un conteneur temporaire qui monte le volume et un dossier de l'hôte, puis crée une archive
  • B. Copier à la main le dossier interne de Docker
  • C. Utiliser docker save sur le volume
  • D. Utiliser docker commit sur le volume
Réponse

A. Le conteneur temporaire lit le volume et écrit l'archive dans le dossier de l'hôte, puis disparaît (--rm). docker save concerne les images, et docker commit les conteneurs (section 7).

Question 10. Pourquoi arrête-t-on une base de données avant d'archiver son volume ?

  • A. Pour libérer de la mémoire
  • B. Docker interdit de monter un volume utilisé par un conteneur en cours d'exécution
  • C. Une base écrit en permanence dans ses fichiers : archiver pendant l'écriture peut donner une sauvegarde incohérente
  • D. Pour supprimer le volume à la fin de la sauvegarde
Réponse

C. Une base arrêtée laisse des fichiers cohérents. Pour une base en production, on peut aussi utiliser son outil de sauvegarde, par exemple pg_dump pour PostgreSQL (section 7 et Lab 5.2).