• Stars
    star
    250
  • Rank 161,478 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 9 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Version control for your development databases in Docker.

Version control for your development databases in Docker

Build Status

dvol lets you commit, reset and branch the containerized databases running on your laptop so you can easily save a particular state and come back to it later.

Installation

Step 1

Install Docker 1.8.0 or later.

Step 2

$ curl -sSL https://get.dvol.io |sh

This will pull the dvol docker image, run the dvol docker volume plugin, and set up a tiny wrapper script in /usr/local/bin/dvol.

Data model

  • Volume: a named repository for data files (e.g. database data files) which can be mounted into a docker container.
  • Branch: a linear set of commits (one branch of the tree) and a live running point which the database can write to.
  • Commit: a point-in-time snapshot of the running point of the current branch, named with a UUID.

Usage

dvol copies git as closely as possible, but only implements a subset of its commands.

Here are some examples:

  • dvol list: see which volumes there are, which branch each volume is on, and which containers are currently using each volume.
  • dvol commit -m "commit description": create a new commit based on the running point of the database container by safely stopping and starting the container around the commit.
  • dvol checkout -b newbranch: create a new branch named newbranch from the latest commit (HEAD) on the current branch.
  • dvol reset --hard HEAD^: roll back the current branch to the second last commit.

You can see all available commands by running dvol --help.

If you want other commands to be implemented, please open an issue or even better a pull request!

Docker integration

Use a dvol volume in Docker by specifying docker run -v demo:/path --volume-driver=dvol. This will create a dvol volume called demo.

If a dvol volume doesn't exist when it is referenced, it is created on-demand.

Compose integration

You can also use dvol with Docker Compose, which makes for an awesome way to spin up reproducible microservices environments on your laptop. With dvol you can set volume_driver: dvol in order to automatically spin up all the dvol volumes for your app described with Docker compose with a single docker-compose up -d.

See this example for a very simple demo.

Demo

dvol clusterhq

Examples

Check out the examples directory.

Just run docker-compose up -d on any one of the docker-compose.yml files there.

Ideas? Feedback? Issues? Bugs?

We really appreciate your ideas, feature request, pulls, and issues/bug reports for dvol, because we believe in building useful and user friendly tools for our communities.

Please raise a ticket or feel free to send us a email at [email protected].

More Repositories

1

flocker

Container data volume manager for your Dockerized application
Python
3,381
star
2

powerstrip

Powerstrip: A tool for prototyping Docker extensions
Python
302
star
3

mesos-module-flocker

Mesos isolator for Flocker volumes
C++
51
star
4

powerstrip-flocker

Portable volumes using just the Docker CLI
Python
46
star
5

fli

Fli, the CLI to FlockerHub, is like Git for data. Just like you can use Git to copy, branch, push and pull code, you can use Fli to copy, branch, push and pull your data volumes.
Go
45
star
6

pyzfs

Python bindings to the stable ZFS ABI
Python
34
star
7

ceph-flocker-driver

A Ceph RBD driver for Flocker
Python
25
star
8

flocker-docker-plugin

SUPERCEDED, functionality is now part of Flocker
19
star
9

rancher-flocker

Packaging and deploying Flocker on top of Rancher
HCL
17
star
10

ansible-role-flocker

An ansible role to install and configure flocker
17
star
11

flocker-coreos

Experiment demonstrating Flocker running on CoreOS
Python
15
star
12

docker-images

Docker images from ClusterHQ
Python
13
star
13

zfs-binaries

Some ZFS kernel modules and binaries, automatically built from CoreOS stable/beta/alpha channels
Shell
13
star
14

unofficial-flocker-tools

A tool to make installing Flocker with container orchestration tools easier and more fun
Python
11
star
15

fli-docker

The fli-docker utility is designed to simplify the deployment of stateful applications inside Docker containers.
Go
9
star
16

gentoo

gentoo prefix for compiling zfs on coreos
Shell
9
star
17

flocker-ceph-vagrant

A local vagrant environment for flocker and ceph using virtualbox.
Shell
7
star
18

volume-plugins-demo

Using Docker 1.8 Volume Plugins with Compose and Flocker.
Shell
6
star
19

marathon-ha-demo

A demo of a HA container using Mesos and Flocker.
Shell
5
star
20

hiring

Jobs at ClusterHQ
5
star
21

inventory-app

A sample inventory tracking application to demonstrate ClusterHQ solutions.
JavaScript
4
star
22

homebrew-tap

Homebrew recipes for Flocker
Ruby
4
star
23

marathon-flocker-plugin-demo

A demo of migrating a PHPMyAdmin and MySQL application using Marathon and the Flocker Docker Plugin.
Shell
4
star
24

powerstrip-slowreq

A trivial example plugin for Powerstrip: a tool for prototyping Docker extensions
Python
4
star
25

gce-ansible-demo

Demo of installing Flocker on GCE using Ansible.
Shell
3
star
26

flocker-go

Flocker go library
Go
3
star
27

zfs-builder

simple golang wrapper script which can email zfs build results on various linux distros, including coreos
Go
3
star
28

mesos-flocker-integrations

integrations between Flocker and Mesos
Shell
3
star
29

benchmark-server

A service to store and retrieve benchmarking metrics
Python
2
star
30

fedora-packages

Packages for ClusterHQ's flocker, that aren't available in fedora.
2
star
31

examples

Example code for Flocker, FlockerHub, and FLI
Ruby
2
star
32

flocker-sourcelair

repo for the Sourcelair / ClusterHQ collaboration for running a 5 node Flocker cluster
Python
2
star
33

flocker-mesosphere

Placeholder for Flocker Mesosphere integration
1
star
34

flocker-quickstart

Flocker application and deployment configurations for the Getting Started guide
1
star
35

build.clusterhq.com

Buildbot configuration for ClusterHQ.
Python
1
star
36

blockdevice-utils

Utility libraries for blockdevice storage plugins
1
star
37

vagrant-powerstrip-flocker

Vagrant demo for powerstrip-flocker adapter
Shell
1
star
38

docker-plugins

A temporary fork of Docker for working on docker plugin mechanism (mainly for issue tracker, wiki)
Go
1
star
39

volume-hub-catalog-agents

Install them on all the nodes in your Flocker cluster and they will push data from your cluster (volumes, containers, logs) into the Flocker volume hub
Python
1
star
40

flocker-openssl

Use openssl to generate Flocker certificates.
Shell
1
star