L'exemple ci-dessous crée dbdata le volume nommé et le référence dans db service:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
(de https://stackoverflow.com/a/35675553/4291814 )
Je peux voir le chemin par défaut du volume:
/ var/lib/docker/volumes/ nom_projet _ dbdata
Ma question est de savoir comment configurer le chemin sur l'hôte pour le volume dbdata.
Avec le pilote de volume local
, vous pouvez utiliser des montages arbitraires. en utilisant un bind mount , vous pouvez y parvenir exactement.
Pour configurer un volume nommé monté dans/srv/db-data, votre fichier docker-compose.yml ressemblera à ceci:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/srv/db-data'
Je ne l'ai pas testé avec la version 2 du format de fichier compose, mais https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 n'indique pas , ça ne devrait pas marcher.
Je ne l'ai pas non plus testé sous Windows ...
L'emplacement des volumes nommés est géré par le menu fixe. si vous souhaitez spécifier vous-même l'emplacement, vous pouvez soit "lier le montage" à un répertoire d'hôte, soit utiliser un plug-in de volume vous permettant de spécifier un chemin.
Vous pouvez trouver certains détails dans une autre réponse que j'ai postée récemment; https://stackoverflow.com/a/36321403/1811501