Редактирование IT-курса
- 12
- 0
- Опубликовано: 2020-01-26
Директории тоже можно пробрасывать. Их можно подключать к контейнеру для хранения или передачи программе необходимых сервисных файлов, которые в исходном контейнере не присутствуют. Пример: подключение директории с SSL сертификатами для nginx, добавляемые по мере появления новых virtual hosts, либо для хранения логов, выдаваемых приложением.
Однако прямое подключение - это лишь один из методов создания постоянного хранилища. Docker имеет в своем арсенале такую сущность, как Volume – механизм для хранения данных.
При первом рассмотрении, можно предположить, что Volume - это тот же Mount, но контролируемый самим Docker. При этом директория, в которой создаются Volume, всегда одна - `/var/lib/docker/volumes` и, в отличие от тех же Mount, управление Volume производится через Docker CLI, а не через команды в хостовой системе.
Для работы с Volume у Docker CLI есть подкоманда с ожидаемым именем `volume`, которая позволяет управлять всем жизненным циклом Volumes.
Заранее предупреждаем вас о том, что монтирование директории внутрь контейнеров работает так же, как и на хостовой системе! Mount производится поверх существующей директории, что приводит к недоступности исходных данных, которые перекрываются mount. Поэтому, например, для подключения SSL сертификатов в директорию с конфигурационными файлами требуется либо подключать хостовую директорию в поддиректорию контейнера, либо производить подключение пофайлово. Учтите, что последний вариант может подойти только в том случае, если количество файлов не меняется.
Как мы и говорили, использование Volume в первом приближении почти идентично использованию Mount на директорию, но так происходит лишь тогда, когда мы не усложняем и создаем хранилище по умолчанию на хосте.