En un mot
L' VOLUME [PATH]
d'instructions à l'intérieur d'un Dockerfile est équivalent à
$ docker run -v $(docker volume create):[PATH] [IMAGE_NAME]
Explication détaillée
Le conteneur de système de fichiers est faite de couches, de manière à l'écriture, il est plus lent et limité (parce que le nombre fixe de couches) de la plaine du système de fichiers.
À l'aide de volumes dans le menu fixe est principalement moins d'une question de vitesse qu'une question de persistance des données indépendantes à partir d'un conteneur du cycle de vie. Le montage des volumes à partir d'un disque plus rapide sera bien évidemment d'améliorer les performances, mais Docker du comportement par défaut de VOLUME
est de créer un nom de volume sur le système hôte avec peu ou pas d'améliorations de la vitesse par rapport au conteneur de l'écriture de la couche.
-v
paramètre est pour moi, clairement, simplement, il expose un répertoire de l'hôte vers le conteneur et vice versa
Alors que c'est en partie vrai, -v
peut également être utilisé pour monter nommé volumes dans votre conteneur Docker au lieu d'un répertoire. Ce petit détail est important pour comprendre ce qu' VOLUME
n'. Un exemple:
$ docker volume create my_volume
$ docker run -v my_volume:[PATH] [IMAGE_NAME]
Ici, un volume nommé my_volume
a été créé. Il se comporte comme attendre d'un "normal" d'un montage. Toute modification de [PATH]
à l'intérieur du conteneur sera conservée dans ce volume. La différence est que Docker gère le volume de l'emplacement, de sorte que vous n'avez pas besoin de s'inquiéter (c'est - /var/lib/docker/volumes/my_volume/_data
dans le cas où vous êtes intéressé). Pourquoi voudriez-vous cela? Vous pourriez avoir une base de données de test. Alors que vous n'avez pas besoin d'un accès direct aux fichiers, vous pouvez économiser de l'état actuel de monter dans d'autres conteneurs de base de données.
L' VOLUME [PATH]
enseignement essentiellement enregistre les instructions ci-dessus dans l'image de la métainformation. Donc, chaque fois que vous démarrez un conteneur à partir de cette image, Docker sait que vous voulez persister [PATH]
dans un volume et prend soin de cela.