Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 4 · Volumes

Les volumes Docker

Deux problèmes : modifier un fichier de l'application oblige à regénérer l'image (laborieux en développement), et les logs d'un nginx doivent être partagés avec un autre conteneur ou un autre hôte. Les volumes sont des espaces de stockage externes, partageables entre conteneurs ou entre un conteneur et l'hôte. Les accès via un volume outrepassent le CoW : meilleures performances, et les données ne sont pas enregistrées dans une couche, donc pas par un docker commit.

Bonne pratique : les conteneurs immuables : leur contenu ne varie jamais (aucune écriture), les écritures vont sur un volume externe, ce qui permet de partager des espaces communs.

Vérifie que tu as compris

Dans un conteneur « immuable », où écrit-on les données ?

Avec docker run --volume (ou --mount), on associe un espace de stockage au conteneur. Trois types :

TypePrincipe
Volumeespace sur l'hôte géré par Docker
Bindespace sur l'hôte indépendant de Docker : un répertoire de l'hôte est monté directement ; plus complexe à maintenir (vérifier l'existence des répertoires)
tmpfsespace créé en mémoire ; utile pour une zone de travail performante
docker volume create --name=logs
docker run -P -v logs:/var/log/nginx -d nginx

docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image

Lecture : on crée un volume logs, puis on lance nginx en arrière-plan (-d), avec -P (publie les ports exposés), en montant ce volume sur /var/log/nginx dans le conteneur. La 3e ligne monte un tmpfs en mémoire sur /run, en lecture-écriture, sans exécution (noexec), taille 65536k.

Vérifie que tu as compris

Dans -v logs:/var/log/nginx, que désigne logs ?

Vérifie que tu as compris

Quel type de montage est stocké en mémoire ?