Докер - Множественные дублирующиеся объявления томов; что происходит?

Я пытаюсь настроить постоянный том данных для моего контейнера докеров MySQL.

Я использую официальный образ MySQL, который находится в Dockerfile:

ТОМ / var / lib / mysql

Если я вызову

-v / var / lib / mysql: / var / lib / mysql

во время выполнения моя команда имеет приоритет, или мне нужно удалить объявление VOLUME из Dockerfile?


person Chockomonkey    schedule 27.08.2015    source источник


Ответы (1)


Взгляните на https://docs.docker.com/reference/builder/#volume - команда VOLUME объявляет точку монтирования, поэтому она может использоваться другими хостами с --volumes-from, а команда VOLUME сообщает докеру, что содержимое этого каталога является внешним по отношению к образу. В то время как -v /dir1/:/dir2/ смонтирует dir1 с хоста в работающий контейнер в местоположении dir2.

Другими словами, вы можете использовать оба вместе, и докер правильно смонтирует -v.

person Michael    schedule 27.08.2015
comment
Спасибо, это именно то, что мне нужно было знать! - person Chockomonkey; 27.08.2015
comment
@Chockomonkey, не могли бы вы помочь мне понять бит '--volumes-from'. Если изображение определяет VOLUME в файле докеров, например '/ tmp', это означает, что мой хост-каталог НЕ будет смонтирован (для этого мне пришлось бы использовать -v), так какой смысл вообще объявлять VOLUME? Я предполагаю, что это связано с '--volumes-from', но не уверен, что понимаю, как это работает на практике. - person JARC; 28.02.2017
comment
@JamesC Насколько я понимаю, команда VOLUME в Dockerfile просто показывает местоположение внутри контейнера, которое будет использоваться другими контейнерами с помощью команды --volumes-from. - person Chockomonkey; 01.03.2017