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
.
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!
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 feedback@clusterhq.com.