Poniższy przykład tworzy bazę danych o nazwie volume i odwołuje się do niej w usłudze db :
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
(z https://stackoverflow.com/a/35675553/4291814 )
Widzę domyślną ścieżkę dla woluminu:
/var/lib/docker/volumes/<project_name>_dbdata
Moje pytanie brzmi, jak skonfigurować ścieżkę na hoście dla dbdata
woluminu?
docker
docker-compose
volume
misza
źródło
źródło
Odpowiedzi:
Wraz ze
local
sterownikiem głośności przychodzi możliwość używania dowolnych montowań; używając bind mount możesz to osiągnąć.Aby skonfigurować nazwany wolumin, który zostanie zamontowany
/srv/db-data
, Twójdocker-compose.yml
wyglądałby następująco:Nie testowałem tego z wersją 2 formatu pliku tworzenia wiadomości, ale https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 nie wskazuje, że nie powinno działać.
Nie testowałem też tego na Windowsie ...
źródło
Lokalizacją nazwanych woluminów zarządza docker; jeśli chcesz samodzielnie określić lokalizację, możesz albo „powiązać montowanie” katalogu hosta, albo użyć wtyczki woluminu, która umożliwia określenie ścieżki.
Możesz znaleźć szczegóły w innej odpowiedzi, którą niedawno opublikowałem; https://stackoverflow.com/a/36321403/1811501
źródło
local
wtyczki woluminu, która jest dostarczana z samym dockerem; zobacz moją odpowiedź jako przykład.Od
docker-compose v3.2
teraz możesz to zrobić w następujący sposób:Uwaga: Wiele, jak się spodziewałem, gdybyś
version: "3"
użył najnowszej / najnowszej wersji V3, nie używav3.0
, MUSISZ określić co najmniej,3.2
aby użyć poniższej metody konfiguracji.https://docs.docker.com/compose/compose-file/#volumes
Uwaga:
Nazwane woluminy muszą być wymienione pod klawiszem woluminów najwyższego poziomu, jak pokazano.
źródło
dbdata
mapowany na usługędb
jako jego objętość? @FreeSoftwareServers