dksnap позволяет создавать и управлять снимками контейнеров Docker. Мы ожидаем, что это будет особенно полезно для разработчиков, работающих с контейнерами баз данных локально. Проверьте dksnap
на GitHub !
Местные разработки и тестовые данные
Одна из лучших сторон работы в Kelda — это то, что мы можем общаться с тоннами разработчиков, которые ежедневно занимаются созданием микросервисов. Мы слышим обо всех преимуществах контейнерных разработок, а также о некоторых проблемах. Одной из таких проблем является управление тестовыми данными во время локальной разработки и тестирования.
Во-первых, некоторый контекст: большинство разработчиков, с которыми мы работаем, используют Docker локально для работы с одним или несколькими контейнерами, которые зависят от какой-либо базы данных. В производстве, конечно, они используют производственную базу данных, управляемую командой ops. Однако при локальной работе доступ к производственной базе данных обычно невозможен. Вместо этого разработчики, как правило, получают контейнер Postgres, MySQL или Mongo из Docker Hub.
Проблема начинается, когда эта база данных должна быть заполнена данными , как правило, это требует раздражающей ручной настройки, которая может занять довольно много времени, чтобы получить право. После того, как была проделана вся работа по правильной настройке контейнера базы данных, последнее, что вам нужно, это сделать это снова . Однако, в конце концов, тесты запускаются, данные устаревают, контейнеры перезапускаются, жизнь продолжается, и вы возвращаетесь к тому, с чего начали — перед вами куча ручных настроек.
Вам также может понравиться: Объяснение Docker — Вводное руководство по Docker
dksnap
dksnap
это инструмент, который позволяет создавать, просматривать и выполнять откат моментальных снимков контейнеров в режиме реального времени, не прибегая к использованию скриптов bash или запоминанию сложных команд докера.
После того, как вы настроили свой контейнер точно так, как вам нравится, вы можете создать снимок. После этого вы можете манипулировать вашими данными так, как вам хочется, зная, что вы можете мгновенно вернуться к предыдущему рабочему состоянию за считанные секунды.
В дополнение к основной функции моментальных снимков, dksnap
позволяет заменить работающий контейнер на любой созданный моментальный снимок, а также предоставляет древовидное представление всех ваших снимков вместе с разницей, показывающей, как они изменились с течением времени.
dksnap
имеет три ключевых функции, которые нелегко реплицировать со стандартным интерфейсом командной строки Docker.
- Во-первых, это объем информации. Большинство контейнеров базы данных используют тома, которые
docker commit
не захватывают. - Во-вторых, это база данных.
dksnap
знает, как общаться с Mongo, Postgres и MySQL, что позволяет вежливо создавать дампы и восстанавливать данные, а также дает возможность показывать различия между различными версиями снимков. - Наконец, что не менее важно, он имеет простой и интуитивно понятный пользовательский интерфейс, который скрывает сложность, необходимую для снимков докера.
Пытаться dksnap
Начать с dksnap
очень просто. Этот инструмент является двоичным файлом, который можно установить, запустив в терминале следующее:
Оболочка
xxxxxxxxxx
1
curl https://kelda.io/install-dksnap.sh | sh
Или, если хотите, загрузите последнюю версию и скопируйте ее на свой $PATH
.
Если у вас уже есть контейнеры, работающие на вашем локальном компьютере, dksnap
открывается новый графический интерфейс терминала, который позволяет вам создавать, заменять и просматривать снимки ваших контейнеров.
В противном случае, если вы хотите попробовать dksnap
, мы создали простую демонстрацию вместе с пошаговыми инструкциями, чтобы вы могли увидеть, как она работает.
Джава
xxxxxxxxxx
1
# Download the demo.
2
git clone https://github.com/kelda/dksnap.git
3
cd dksnap/demo
4
# Start the example application.
6
# You can access it in your browser at localhost:8080.
7
docker-compose up -d
8
# Use dksnap to create snapshots of the entries in the Mongo database.
10
dksnap
Втягиваться
dksnap
в настоящее время в альфа . Он готов к ежедневному использованию, но все еще находится в стадии разработки. Если вы считаете это полезным или интересным, рассмотрите возможность присоединиться к сообществу и поделиться своими мыслями.
Вот несколько способов принять участие:
- Начните использовать
dksnap
сегодня с вашей работой или личными проектами - Форк репо и ковыряться
- Если у вас есть предложения, откройте вопрос
- Присоединяйтесь к расслабленной
Мы с нетерпением ждем от вас!
Дальнейшее чтение
Написать поддерживаемые тесты интеграции с Docker
Тонкое искусство использования Docker для автоматизации тестирования