Пример ниже создает dbdata с именем volume и ссылается на него внутри службы db :
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
(из https://stackoverflow.com/a/35675553/4291814 )
Я вижу, что путь к тому по умолчанию:
/var/lib/docker/volumes/<project_name>_dbdata
У меня вопрос, как настроить путь на хосте для dbdata
тома?
Ответы:
С
local
драйвером громкости появляется возможность использовать произвольные крепления; Используя крепление для привязки, вы можете добиться именно этого.Для настройки именованного тома, в который монтируется
/srv/db-data
, вашdocker-compose.yml
будет выглядеть так:Я не тестировал его с версией 2 формата файла compose, но https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 не указывает, что он не должен работать.
На винде тоже не тестировал ...
источник
Расположение именованных томов управляется докером; Если вы хотите указать местоположение самостоятельно, вы можете либо «привязать монтирование» к каталогу хоста, либо использовать подключаемый модуль тома, который позволяет вам указать путь.
Вы можете найти некоторые подробности в другом ответе, который я недавно опубликовал; https://stackoverflow.com/a/36321403/1811501
источник
local
плагин громкости, который поставляется с самим докером; см. мой ответ для примера.По состоянию
docker-compose v3.2
теперь вы можете сделать это следующим образом :Примечание. Многие, как я понял, если вы скажете,
version: "3"
будут использовать самую новую / последнюю версию V3, она не используетv3.0
, вы ДОЛЖНЫ указать как минимум3.2
использовать метод конфигурации ниже.https://docs.docker.com/compose/compose-file/#volumes
Заметка:
Именованные тома должны быть перечислены под ключом томов верхнего уровня, как показано.
источник
dbdata
соотносится с сервисомdb
как его объем? @FreeSoftwareServers