Volume 3 types de Docker Compose considérés à partir de l'objectif

introduction

Pour éliminer les expériences et croyances égoïstes suivantes Je l'ai écrit dans la perspective qu'il était facile de comprendre si je pense de cette façon

――Qu'est-ce que «.:»! La confusion initiale --Tous les volumes sont destinés au montage du côté hôte

Pourquoi Docker a besoin de volume

Il existe les mécanismes suivants de Docker, et je pense que le mécanisme pour résoudre chacun est le volume.

3 types de volume

--host volume? (je ne connais pas le nom exact)

Commençons par les cas où chacun est nécessaire

Volume Docker du point de vue

Persister les données dans le conteneur => Possible pour tous les volumes

Normalement, lorsque le conteneur est arrêté, les données du conteneur ne sont pas conservées (= non persistantes) Le mécanisme pour rendre cette persistance est le volume Exemple) Tous les éléments qui ne doivent pas être perdus à chaque fois, y compris les données de base de données

Synchroniser entre l'hôte (côté local) et le conteneur => possible avec le volume de l'hôte

Alors que Docker traite le conteneur hôte comme un environnement indépendant, il est possible de monter un répertoire spécifique du côté hôte et de synchroniser les données entre l'hôte et le conteneur. Exemple) Lorsque le fichier édité sur l'hôte est reflété dans le conteneur à tout moment, comme dans l'environnement de développement.

Partage de volume avec plusieurs conteneurs => possible avec un volume nommé

Normalement, les conteneurs sont traités comme des environnements indépendants et les fichiers ne sont pas partagés. Partagez facilement des fichiers entre des conteneurs en utilisant un volume nommé Exemple) Lors du partage avec du contenu statique entre le serveur Web (conteneur) et le serveur d'applications (conteneur)

cette? Et le volume anonyme? ??

Je pense que cela est suffisant pour les cas où vous souhaitez uniquement garantir la persistance, n'avez pas besoin de synchroniser avec l'hôte et n'avez pas besoin de partager avec d'autres conteneurs. De plus, dans le cadre d'un volume partagé persistant, Je pense que c'est efficace dans les cas où vous osez maintenir l'indépendance entre les conteneurs. Par exemple, certains répertoires sous le volume sur lequel l'hôte est monté peuvent être séparés en tant que volume anonyme, et le chemin spécifié par un volume anonyme peut garantir l'indépendance entre les conteneurs.

Exemple de réglage - Types de volume de docker 3

host mount: <host_path>:<container_path> Montez le répertoire hôte et synchronisez-le avec le chemin dans le conteneur

volumes:
  - .:/myapp # .(Répertoire actuel)Monter et dans le conteneur/Synchroniser avec myapp

named volume: <volume_name>:<container_path> Traite le chemin du conteneur comme un volume et le rend persistant. Le fait d'être nommé facilite le partage avec d'autres conteneurs. ** Même sous le chemin monté sur l'hôte, le volume nommé est traité comme un autre volume et séparé du côté hôte **

volumes:
  - node_modules:/myapp/node_modules #Persister le chemin dans le conteneur en tant que volume, nœud_Gérer avec les modules de nom

anonymous volume: <container_path> La différence avec le volume nommé est qu'il est anonyme, il n'a pas de nom (mais il est assigné un hachage aléatoire), et cela devrait être bien si vous voulez juste le rendre persistant sans supposer qu'il est partagé avec d'autres conteneurs.

volumes:
  - /myapp/node_modules #Décrivez uniquement le chemin dans le conteneur et rendez-le persistant en tant que volume

(Prévu pour être mis à jour à tout moment)

référence

Options fréquentes que vous devriez connaître pour devenir "Docker Compose, je comprends un peu" - Référence du fichier de composition 3 (3.8) ---- Qiita

Recommended Posts

Volume 3 types de Docker Compose considérés à partir de l'objectif
Surveillance Docker-expliquant les bases des bases-
[Résumé des livres techniques] Résumé de la lecture "Apprendre Docker à partir des bases"
Comparaison des types sûrs à tolérance nulle, à tolérance nulle et à tolérance nulle du point de vue de la sécurité nulle
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
[Challenge CircleCI from 0] Apprenez les bases de CircleCI
Examinez le remplacement de Docker vers Podman.
L'histoire de la mise à jour du Docker Container de Sonar Qube
[Challenge Docker from 0] Présentation et conditions de Docker
L'histoire de RxJava souffrant de NoSuchElementException
Trouvez la différence à partir d'un multiple de 10
Le contenu de useBodyEncodingForURI a-t-il changé par rapport à Tomcat8?
[Docker] Introduction à docker compose Résumé de base de docker-compose.yml
Améliorer les performances de l'environnement de développement Docker
Modifier le dossier de placement de l'image et du conteneur Docker