Skip to content

discordianfish/docker-backup

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backup and Restore Docker Volume Containers

This tool gets the volume container of a given container and writes the volume container's json and all volumes found to a tarball. After that, this tool can be used to restore a volume container from that tarball.

Let say you have a container named mysql-data to keep /var/lib/mysql. You start up your mysql server by running:

$ docker run --volumes-from=mysql-data --name mysql-server ...

Backup that data container:

$ docker-backup store mysql-server-backup.tar mysql-server

Restore it on a new system:

$ docker-backup restore mysql-server-backup.tar

For general documentation on how to use volume containers, see: http://docs.docker.io/en/latest/use/working_with_volumes/#creating-and-mounting-a-data-volume-container

For a more complete backup strategy built on top of docker-backup, look at https://github.com/discordianfish/docker-lloyd.

To run docker-backup itself as a Container, you need to bind-mount the Docker socket, Docker's data directory and point docker-backup via the -addr flag to the location of docker.sock within the container:

$ docker run -v /var/run/docker.sock:/docker.sock \
     -v /var/lib/docker/vfs/dir:/var/lib/docker/vfs/dir dckr/docker-backup -addr /docker.sock ...

Build

go get -u github.com/golang/dep/cmd/dep
dep ensure
go build

About

Tool for backing up docker volume / data containers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.1%
  • Dockerfile 3.9%