Будет ли при монтировании тома в места, содержащие файлы с одинаковыми именами, перезаписывать эти файлы или они будут использоваться? - PullRequest
0 голосов
/ 29 января 2019

Я ищу помощь.Если я использую docker run для запуска контейнера и использую -v для монтирования на том, в котором уже есть файлы (это файлы из предыдущего запуска контейнера, но с измененным файлом конфигурации).Будет ли контейнер, который я запускаю, использовать содержимое файлов, которые я перезаписал, или он все равно будет использовать файлы в контейнере и игнорировать отредактированные файлы?Я использую sudo docker run --rm -it -p "8000:8000" -v "/opt/stellar:/opt/stellar" --name stellar stellar/quickstart --testnet

И в /opt/stellar на моей машине (AWS EC2) у меня есть файлы, в которые уже включен отредактированный файл stellar-core.cfg.

Извините, если этонемного сбивает с толку.Я пытаюсь объяснить, что я имею в виду, как могу.Спасибо за любую помощь.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Строго говоря, вы говорите не о volumes, а о bind mounts, в отличие от volumes, они позволяют указать местоположение на хост-машине.

Ответ на ваш вопрос следующий:

  1. Bind mount всегда использует hosts content.Если в контейнере есть что-то в подключенной папке, оно будет переопределено.

  2. Всякий раз, когда вы изменяете свою папку из контейнера, изменения сохраняются на хосте (если вы не привязываете режим только для чтения - тогда ваши изменения будутбыть отклонено)

0 голосов
/ 29 января 2019

Если вы запустите:

docker run -v /host/directory:/container/directory ...

Тогда все, что находится в каталоге хоста, всегда будет скрывать то, что было в образе по этому пути, и если приложение в контейнере вносит изменения в /container/directory, онибудет отображаться в соответствующем каталоге хоста.

Если вы обновите образ, чтобы внести изменения в каталог контейнера, и введете ту же команду docker run, каталог хоста все равно будет скрывать содержимое образа, и выне увидит эти изменения в контейнере повторного запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...