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.
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 /usr/local/bin/dvol
.
- 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.
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 namednewbranch
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!
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.
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.
Check out the examples directory.
Just run docker-compose up -d
on any one of the docker-compose.yml
files there.
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].