Comment définir un chemin sur l'hôte pour un volume nommé dans docker-composer.yml
Exemple ci-dessous crée dbdata nommé volume et références à l'intérieur de 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 d'accès pour le volume par défaut:
/ var/lib/docker/volumes/project_name _dbdata
ma question Est de savoir comment configurer le chemin sur l'hôte pour le volume dbdata.
2 réponses
local
le pilote de volume permet d'utiliser des montages arbitraires; en utilisant un bind monter vous pouvez réaliser exactement cela.
pour configurer un volume nommé qui est monté dans /srv/db-data, votre docker-compose.yml ressemblerait à 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 de composition, mais https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 n'indique pas que il ne doit pas travailler.
Je ne l'ai pas non plus testé sur Windows...
l'emplacement des volumes nommés est géré par docker; si vous voulez spécifier l'emplacement vous-même, vous pouvez soit "bind mount" un répertoire hôte, soit utiliser un plugin de volume qui vous permet de spécifier un chemin.
Vous pouvez trouver des détails dans une autre réponse que j'ai posté récemment; https://stackoverflow.com/a/36321403/1811501