Pjeroo
@Pjeroo
Веб-разработчик

Как организовать клонирование контейнеров на zfs?

Добрый день.

Задача: есть 20 разработчиков, есть 2 крупных проекта с большими базами, но нет единого рабочего окружения. Необходимо сделать так, чтобы у всех разработчиков была возможность создавать/пересоздавать рабочие среды в мгновение ока + чтобы все среды были одинаково настроены и раскатаны все проекты (их 2) с их полными базами (допустим их тоже 2). Базы достаточно большие (допустим 100 гб каждая) и просто копировать всё окружение не очень круто (т.к это будет занимать много места + время на копирование). Вроде как для этих целей хорошо может подойти zfs. Т.е создаем мастер-окружение при помощи, скажем, docker-compose -- с этого окружения мы будем снимать снэпшоты, чтобы потом клонировать это всё дело, чтобы попусту не копировать файлы, которые не будут изменяться. Следовательно, чтобы развернуть новое окружение вместе с базой и проектами, не нужно долго и муторно раскатывать дамп, достаточно просто склонировать снэпшот и у вас рабочая среда.

Вопрос: как это всё организовать? я поставил zfs, создал пул, создал файловую систему, смонтированную на /var/lib/docker и вроде бы всё работает, но ведь это сейчас решает проблему копирования / клонирования / восстановления всех контейнеров, что у нас есть, а не каких-то конкретных. Направьте, пожалуйста на путь истины. Можно ли смонтировать zfs на уровень контейнеров, затем делать снэпшоты, клонировать, а потом как-то магически менять пути и чтобы контейнер вроде как другой, но данные берутся с клона. Или же выделять storage-контейнеры с voluum на zfs, куда складывать все данные (проекты, файлы бд), а потом просто использовать эти контейнеры в качестве voluum'ов для других контейнеров, чтобы они использовали просто эти данные?
  • Вопрос задан
  • 477 просмотров
Пригласить эксперта
Ответы на вопрос 2
Возможно не до конца понял вашу задачу, но я бы попробовал решить проблему следующим образом:
  • Создать базовый "образцовый" контейнер, сделать снапшот и защитить его от удаления. Снапшот склонировать на нужное число контейнеров.
  • Сконфигурировать каждый контейнер, сделать снапшот и защитить от удаления - получаем ворох настроенных контейнеров с точкой отката.
  • По мере необходимости клонировать контейнеры-образцы. Придётся, конечно, дописать скриптик чтобы менять конфиги докера...
Ответ написан
gbg
@gbg Куратор тега Системное администрирование
Любые ответы на любые вопросы
Стоп-стоп-стоп. В докере уже есть файловая система со стекированием изменений и откатами, зачем туда еще ZFS толкать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы