2017-10-10 7 views

Répondre

1

Les volumes et les couches d'image sont des concepts distincts dans Docker. Pour votre première question, aucun, aucun volume n'est créé sans -v étant utilisé (en ignorant pour l'instant le fait que le format Dockerfile a un verbe VOLUME). Si vous spécifiez un volume fourni par un pilote de volume (le répertoire par défaut étant un répertoire local qui se liera à l'emplacement cible dans le système de fichiers de votre conteneur), ce volume n'a aucun rapport avec les couches d'image, y compris Couche supérieure accessible en écriture fournie par le pilote de stockage principal utilisé dans votre moteur Docker. Plus précisément, le pilote de stockage utilisé contrôle la manière dont la couche de couche est gérée et la couche supérieure "r/w" est gérée. Par exemple, le pilote overlay ou devicemapper ou btrfs gère le montage des couches d'image et crée et gère la couche supérieure.

Les volumes entrent en jeu en dehors de cela en étant liés à des chemins existants (ou créés) dans l'image du système de fichiers. Lorsque vous quittez le conteneur, ces volumes sont conservés dans leur emplacement source (par exemple pour un pilote de volume local/par défaut, dans /var/lib/docker/volumes/<name>) et la couche de couche non montée aura, sous la gestion du pilote de stockage utilisé, la "couche supérieure" modifiée de la pile de calques, sauf si vous avez retiré votre conteneur à la sortie (--rm). Ce sont deux concepts gérés séparément et le système de volume n'a pas d'interaction avec le pilote backend de stockage.

+0

Merci. Aide beaucoup –

0

Si j'exécute un conteneur docker sans argument -v, les volumes seront-ils créés?

-v n'est pas pour créer le volume, juste pour monter les données de et à

-v [host_path]: [container_path],

ici host_path , le chemin du répertoire de votre serveur où vous voulez convertir les données en

tainer_path, chemin du répertoire contenant la date de montage

Si je spécifier un volume (ce qui est un support vers un emplacement dans l'hôte) fait le volume se couche inscriptible de ce conteneur?

Lorsque le chemin n'existe pas dans l'hôte. Mais vous l'avez monté en conteneur, il y a deux cas ici.

CASE 1: Si vous voulez monter des fichiers de configuration de votre machine conteneur si le conteneur attend à ce que le fichier en cours d'exécution, elle génère une erreur dans les journaux

CASE 2: Si vous voulez monter le volume du conteneur à la machine hôte.Lorsque cotainer démarre, il crée un dossier dans la machine hôte et écrit les données dans le répertoire monté par la machine hôte.