Note ajoutée depuis : deux choses ont vieilli dans ce billet. --link est déprécié, remplacé par les réseaux Docker (--network) ; et je ne passerais plus un mot de passe en clair sur la ligne de commande — il se retrouve dans ps, dans l'historique du shell et dans les métadonnées du conteneur. Un fichier d'environnement lu par --env-file, avec les droits qui vont bien, coûte exactement le même effort. Le texte reste tel qu'il a été écrit ; c'est le jalon « conteneurs » de mon parcours, pris sur le vif.
Il est intéressant (et vivement recommandé) d'effectuer des backups automatiques avec Docker. Pour réaliser un backup automatique et rapidement, il suffit de réaliser :
docker run --rm --link root_database3_1:dbserver -v /hostdir/:/backup -e DBUSER=root -e DBPASS=password -e DATABASE=base -e BACKUP_NAME=nomdelabdd thomass/mysqldump backup
On va chercher le conteneur thomass/mysqldump et effectuer l'action « backup » du conteneur, qui consiste à faire un mysqldump.
Pour automatiser cela très rapidement et effectuer des backups réguliers, on peut créer un petit script bash :
#!/bin/bash
echo 'Backup en cours'
docker run --rm --link root_database3_1:dbserver -v /root/backup/:/backup -e DBUSER=monloginroot -e DBPASS=monpassaleatoire -e DATABASE=test -e BACKUP_NAME="test-$RANDOM" thomass/mysqldump backup
echo 'Fin du backup'
Pour finaliser tout ça, on peut ajouter une tâche cron qui va le lancer selon nos besoins :
0 */4 * * * /home/truc/backup.sh
Dans ce cas-ci, il sera exécuté toutes les 4 heures.