Version control for your development databases in Docker
dvol lets you
branch the containerized databases running on your laptop so you can easily save a particular state and come back to it later.
Install Docker 1.8.0 or later.
$ 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
- 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.
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
newbranchfrom 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
If you want other commands to be implemented, please open an issue or even better a pull request!
dvol volume in Docker by specifying
docker run -v demo:/path --volume-driver=dvol.
This will create a dvol volume called
dvol volume doesn't exist when it is referenced, it is created on-demand.
You can also use
dvol with Docker Compose, which makes for an awesome way to spin up reproducible microservices environments on your laptop.
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.
Check out the examples directory.
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 firstname.lastname@example.org.