Vump: (contraction of "volume dump")
The vump
command makes it convienient to backup, migrate and restore websites based on docker containers.
It is a command-line tool that is also the basis for the vump_site
and vump_menu
scripts too.
vump_site
is a wrapper for vump
that will backup and restore an entire website, including a MySQLDump file and website volume data, to a container registry.
The vump_menu
script is also a wrapper to vump
that gives you a nicer menu for all options.
๐ Volume Dump
Docker Volume backup/recovery, import and export tool that includes MySQL databases.
export/import copies files between a host tarball and a volume. For making volume backups and restores.
save/load copies files from the volume into a container which then is made into a new image for commiting to registry.
dbsave/dbload creates a Mysqldump file from the database into a container and is then made into an image for the registry.
โโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โโโโโโ export โโโโโ โ
โ ./ โ โ volume โ
โ โโโโโโ import โโโโถโ โ
โโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โฒ โฒ
save dbsave โ โ
โ โ dbload load
โผ โผ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ busybox container โ
โ /volume-data โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โฒ
โผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Image of container โ
โโโโโโโโโโโโโโโโโโโโโโโโโโ
EXPORT
------
Used to copy all data inside a volume to a .tar.gz file on the host in the current directory.
./vump --export --volume [volumename] --filename [filename.tar.gz]
IMPORT
------
Used to copy all data inside a .tar.gz file on the host into a specific volume.
./vump --import --filename [filename.tar.gz] --volume [volumename]
SAVE
----
Used to copy all data inside a volume onto a new container image. Used to backup to a container repository.
Use on volumes with web-files / assets / etc...
./vump --save --volume [volumename] --image [name_of_image]
LOAD
----
Used to recover all data inside a backup container image onto a volume.
./vump --load --image [name_of_image] --volume [volumename]
DBSAVE
------
Used on mysql containers. Creates a mysqldump and puts the file into a backup container image.
Use on containers with mysql installed and has a database you wish to backup.
./vump --dbsave --container [container] --image [name_of_image] --database [database_name] --username [database_username] --password [database_password]
DBFILE
------
Used on mysql containers. Save the contents of the SQL file in a simple tar.gz file on the host.
./vump --dbfile --container [container] --database [database_name] --username [database_username] --password [database_password]
DBLOAD
------
Used on mysql containers. Loads the contents of the SQL file in a database backup image into the container MySQL.
./vump --dbload --image [name_of_image] --container [container] --database [database_name] --username [database_username] --password [database_password]
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ EXPORT โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Create a BUSYBOX container
# 2. mount volume to /vackup-volume
# 3. mount $pwd to /vackup
# 4. create tar.gz of volume into $pwd
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โ ./ โโโโโmountโโโโโผโถโ /vackup โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโฒโโ โ
# โ โ โ
# โ busybox tar -c โ
# โ โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโดโโ โ
# โ volume โโโโโmountโโโโโผโถโ /vackup-volume โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ IMPORT โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Create a BUSYBOX container
# 2. mount volume to /vackup-volume
# 3. mount $pwd to /vackup
# 4. extract contents of tar.gz into volume
#
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โ ./ โโโโโmountโโโโโผโถโ /vackup โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโฌโโ โ
# โ โ โ
# โ busybox tar -x โ
# โ โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโผโโ โ
# โ volume โโโโโmountโโโโโผโถโ /vackup-volume โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
#
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ SAVE โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Mount volume to busybox
# 2. Copy contents to /volume-data/
# 3. Make an image of the container
# 4. Delete container
#
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โ volume โโโโโmountโโโโผโโถโ /vackup-volume โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโฌโโ โ
# โ โ โ
# โ busybox cp -Rp โ
# โ โ โ
# โ โโโโโโโโโโโโโโโโโผโ โ
# โ โ /volume-data/ โ โ
# โ โโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โ
# โผ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โ Image of Container โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
#
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ LOAD โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Create container of image
# 2. Mount volume to /mount-volume
# 3. Copy everything in /volume-data to /mount-volume
#
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโ โ
# โ volume โโโโโmountโโโโผโโถโ /mount-volume โ โ
# โโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโฒโโ โ
# โ โ โ
# โ busybox cp -Rp โ
# โ โ โ
# โ โโโโโโโโโโโโโโโโโดโ โ
# โ โ /volume-data/ โ โ
# โ โโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โฒ
# โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โ Image of Container โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
#
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ DBSAVE โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Run DB Container (with DB volume mounted)
# 2. MySQLDump database to current folder
# 3. Create new busybox container
# 4. Mount current dir to container
# 5. Copy dump file into container
# 6. Make image of container
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ MySQL Container โ
# โโโโโโโโโโโโโโโโโโโโ โ โ
# โ DB Volume โโโ mount โโโโผโโโโโโโโถ mysqldump โ
# โโโโโโโโโโโโโโโโโโโโ โ โ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโผโโโโโโโโโโ โ
# โ ./backup.sql โโโโโ cp โโโโโผโโ /tmp/backup.sql โ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ โ busybox โ
# โ โ โ
# โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโ mount โโโโโโโโผโถโ /vackup/backup.sql โ โ
# โ โโโโโโโโโโโโฌโโโโโโโโโโโ โ
# โ โ cp -p โ
# โ โผ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โ /db-data/backup.sql โ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ commit
# โผ
# โโโโโโโโโโโโโโโโโโโโโโโโ
# โ Image of Container โ
# โโโโโโโโโโโโโโโโโโโโโโโโ
#
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ DBFILE โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Run DB Container (with DB volume mounted)
# 2. MySQLDump database to current folder
#
# โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ MySQL Container โ
# โโโโโโโโโโโโโโโโโโโโ โ โ
# โ DB Volume โโโ mount โโโโผโโโโโโโโถ mysqldump โ
# โโโโโโโโโโโโโโโโโโโโ โ โ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโผโโโโโโโโโโ โ
# โ ./backup.sql โโโโโ cp โโโโโผโโ /tmp/backup.sql โ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
# โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
# โ DBLOAD โ
# โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
#
# 1. Download DB data image
# 2. Copy the backup file out of image
# 3. Copy backup file into target container
# 4. Load backup into MySQL.
#
# โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ Image with Backup โโโโโโโโโโถโ Container โ
# โโโโโโโโโโโโโโโโโโโโโโโ โ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โ /db-data/backup.sql โ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โ โ
# โ โ cp -p โ
# โ โผ โ
# โโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ ./ โโโโ mount โโผโโ/opt/mount/backup.sqlโ โ
# โโโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ
# โ
# โ โโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ โ MySQL Container โ
# โ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโcpโโโโโโโโโโโโโผโถโ /tmp/backup.sql โ โ
# โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ โ โ
# โ โ mysql โ
# โ โผ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โ DB Volume โโโโmountedโโโผโโ DATABASE โ โ
# โโโโโโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโโโโโโโโโโโโ โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโ
#
Within the ./src folder is the source files to the script split across multiple files.
You can use the Standalone tool to replace any source ./file
lines with the actual contents of that file.
cd docker-vump/src
standalone --input vump_site.src --output ../vump_site