4.1 Méthodes principales de sauvegarde et de restauration des données
Si tu as déjà perdu des données importantes au moins une fois dans ta vie, pas besoin de t’expliquer pourquoi les sauvegardes, c’est super important. Dans cette leçon, on va voir différents moyens et outils pour faire des sauvegardes et restaurer des données dans Docker, y compris les volumes et les répertoires montés.
Méthodes principales de sauvegarde et de restauration des données
- Sauvegardes de volumes Docker
- Utilisation de l’outil tar pour les sauvegardes
- Sauvegardes des bases de données dans les containers
- Restauration des données depuis les sauvegardes
4.2 Sauvegardes des volumes Docker
Les volumes Docker proposent un moyen pratique de stocker les données en dehors des conteneurs. Pour créer des sauvegardes des volumes, diverses approches peuvent être utilisées.
Exemple d'utilisation de la commande docker run pour sauvegarder un volume
Créer une sauvegarde d'un volume
Crée un conteneur qui monte le volume et utilise l'utilitaire tar pour créer une archive des données :
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
Dans cet exemple, le contenu du volume my_volume
est archivé dans le fichier my_volume_backup.tar.gz
, qui est sauvegardé dans le répertoire /path/to/backup
sur l'hôte.
Exemple de restauration d'un volume à partir d'une sauvegarde
Restauration des données dans un volume
Crée un conteneur qui monte le volume et le répertoire contenant la sauvegarde, puis utilise l'utilitaire tar
pour extraire les données :
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Dans cet exemple, les données de l'archive my_volume_backup.tar.gz
sont extraites dans le volume my_volume
.
4.3 Utilisation de l'outil tar
pour les sauvegardes
L'outil tar
est un puissant outil pour créer des sauvegardes et restaurer des données. Il peut être utilisé à la fois à l'intérieur des conteneurs et sur le système hôte.
Exemple de création d'une sauvegarde des données à l'intérieur d'un conteneur
Lance un conteneur avec les données nécessaires et crée une archive avec tar
:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
Dans cet exemple, les données du répertoire /data
à l'intérieur du conteneur my_container
sont archivées dans le fichier my_container_backup.tar.gz
.
Exemple de restauration des données à partir d'une archive
Lance un conteneur et utilise tar pour extraire les données de l'archive :
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 Backups des bases de données dans des containers
Pour les bases de données, on utilise souvent des outils spécialisés pour les backups et la restauration.
Exemple de backup d'une base de données PostgreSQL
Utilise l'outil pg_dump
pour créer un backup de la base de données :
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
Dans cet exemple, la base de données mydb
est exportée dans un fichier mydb_backup.sql
.
Exemple de restauration d'une base de données PostgreSQL
Utilise l'outil psql
pour restaurer la base de données à partir d'un backup :
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 Restauration des données depuis les sauvegardes
La restauration des données, c’est le processus d’extraction des données depuis des sauvegardes créées auparavant.
Exemple de restauration des données depuis une sauvegarde de volume
Utilise la commande docker run
pour extraire les données vers le volume :
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Exemple de restauration d'une base de données MySQL
Utilise l’utilitaire mysqldump
pour créer une sauvegarde de la base de données :
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
Utilise l’utilitaire mysql pour restaurer la base de données :
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
GO TO FULL VERSION