L’article sur la conteneurisation d’un LAMP avec Docker décrit comment initialiser la base de données MySQL et comment restaurer des données précédemment sauvegardées. Ces procédures sont suffisantes pour commencer un projet LAMP avec Docker. Mais comment sauvegarder les données du LAMP conteneurisé avec Docker ?

C’est assez simple. La solution met en œuvre les liens et les volumes Docker. Voici la commande pour réaliser un dump d’une base de données MySQL 5.5 se nommant mysite et se trouvant dans un conteneur se nommant mysite-db :

docker run --rm --link mysite-db:mysql -v //`pwd`/:/data -w //data mysql:5.5 sh -c 'exec mysqldump -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -p mysite -uroot -p "secret-pwd" > dump.sql'

La commande ci-dessus 1 va partager le répertoire courant du serveur Docker avec le répertoire de travail /data. Le fichier dump.sql est donc généré dans le répertoire /data du conteneur et est persisté dans le répertoire courant du serveur Docker.

A vos snapshots !

  1. Le / en préfixe des chemins n’est utilise que pour MS Windows