I changed slightly the way to start my containers. Now they always contain the backup volume too:
docker run --name blog-mysql -v blog-backup:/backup \ -v blog-mysql-data:/var/lib/mysql -d mysql/mysql-server:5.7
docker run --name blog-app -v blog-backup:/backup \ -e WORDPRESS_DB_PASSWORD=DBPASSWORD -e WORDPRESS_DB_USER=WPDBACCOUNT \ --link blog-mysql:mysql -v wordpress-data:/var/www/html -p 80:80 \ -w /var/www/html/wordpress -d wordpress:latest
The reason is that I can run a backup job inside the container. Important for the DB backup as now I can use msqldump. Before it was: stop mysql, tar up the DB files, start MySQL again.
Making a backup in each container:
tar -C /var/www/html -z -f /backup/blog-wp-`data +%Y-%m-%d.tar.gz .
resp.
mysqldump -pROOTMYSQLASSWORD --all-databases | gzip >/backup/blog-db-`date +%Y-%m-%d`.tar.gz
Now the problem is how to get those files out and to where…
Dropbox/Google Cloud don’t offer access via ftp/scp/etc. Time to look into the various storage offerings from Google/Amazon/Azure.