Docker, лекция 7. Контейнеры данных

Docker, лекция 7. Контейнеры данных

Контейнеры могут выполнять разные функции. Это может быть контейнер, создающий и хранящий данные, например, база данных. Так же это могут быть данные, требующие дополнительной конфигурации или SSL-сертификации.

Один из подходов, который был ранее, заключается в использовании опции -v <host-dir>: <container-dir> для сопоставления каталогов. Другой подход заключается в использовании контейнеров данных, о которых сегодня и пойдет речь.

Создадим контейнер

Контейнеры данных — это контейнеры, единственная цель которых заключается в том, чтобы быть местом для хранения/управления данными.

Как и другие контейнеры, они управляются хост-системой. Однако они не запускаются при выполнении команды docker ps.

Чтобы создать контейнер данных, мы сначала создаем контейнер с понятным именем для использования в будущем. Будем использовать busybox в качестве базы, так как он небольшой и легкий на тот случай, если мы захотим перенести контейнер на другой хост.

При создании контейнера мы также используем опцию -v, чтобы определить, где другие контейнеры будут считывать/сохранять данные.

docker create -v /config --name dataContainer busybox

Теперь, когда контейнер установлен, можно копировать файлы из локального клиентского каталога в контейнер.

Для копирования файлов в контейнер нужно использовать команду docker cp. Следующая команда скопирует файл config.conf в наш dataContainer и каталог config.

docker cp config.conf dataContainer:/config/

Монтирование томов

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

Используя опцию —volumes-from <container>, можно использовать тома монтирования из других контейнеров. В примере ниже запустим контейнер Ubuntu, который имеет ссылку на контейнер данных. Когда мы выведем каталог конфигурации, он покажет файлы из прикрепленного контейнера.

docker run --volumes-from dataContainer ubuntu ls /config

Если каталог /config уже существует, то имя тома будет переопределено. Так же можно привязать несколько томов.

Экспорт\импорт контейнеров

Если мы хотим переместить контейнер данных на другой компьютер, мы можем экспортировать его в файл .tar.

docker export dataContainer > dataContainer.tar

Для импорта контейнера данных назад в Docker используйте команду:

docker import dataContainer.tar

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *