2022-05-10 10:07:35 +02:00
---
2022-05-10 10:12:28 +02:00
title: Sauvegarde de base de données conteneurisée
description: Faire un dump d'un base de données fonctionnant dans un conteneur Docker
2022-05-10 10:07:35 +02:00
published: true
2022-05-10 10:13:45 +02:00
date: 2022-05-10T08:13:42.194Z
2022-05-10 10:07:35 +02:00
tags: docker, backup, sauvegarde, postgres, mysql, mariadb
editor: markdown
dateCreated: 2022-05-10T08:07:32.137Z
---
2022-05-10 10:09:17 +02:00
![logo ](https://www.benlcollins.com/wp-content/uploads/2018/11/postgresql-logo.png =400x )
2022-05-10 10:13:30 +02:00
# PostgreSQL
2022-05-10 10:07:35 +02:00
## Récupération des informations
2022-05-10 10:13:45 +02:00
Afin de pouvoir sauvegarder proprement votre base de données (avec un dump), il vous faut les informations suivantes que vous pouvez récupérer directement depuis les variables d'envirionnement du conteneur :
2022-05-10 10:07:35 +02:00
### L'utilisateur de la base de données
```bash
docker exec < CONTAINER_NAME > bash -c 'echo "$POSTGRES_USER"'
```
### Le mot de passe de l'utilisateur
```bash
docker exec < CONTAINER_NAME > bash -c 'echo "$POSTGRES_PASSWORD"'
```
## Sauvegarde
```bash
docker exec -t < CONTAINER_NAME > pg_dumpall -c -U < DB_USER > > dump.sql
```
## Restauration
```bash
cat dump.sql | docker exec -i < CONTAINER_NAME > psql -U < DB_USER >
```
2022-05-10 10:09:17 +02:00
![logo ](https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Mariadb-seal-browntext.svg/2560px-Mariadb-seal-browntext.svg.png =400x )
2022-05-10 10:07:35 +02:00
# MySQL / MariaDB
## Récupération des informations
Afin de pouvoir sauvegarder proprement votre base de données (avec un dump), il vous faut les informations suivante que vous pouvez récupérer directement depuis les variables d'envirionnement du conteneur :
### L'utilisateur de la base de données
```bash
docker exec < CONTAINER_NAME > bash -c 'echo "$MYSQL_USER"'
```
### Le mot de passe de l'utilisateur
```bash
docker exec < CONTAINER_NAME > bash -c 'echo "$MYSQL_PASSWORD"'
```
### Le nom de la base de données
```bash
docker exec < CONTAINER_NAME > bash -c 'echo "$MYSQL_DATABASE"'
```
2022-05-10 10:09:53 +02:00
## Sauvegarde
2022-05-10 10:07:35 +02:00
### Une seule table
```bash
docker exec -e MYSQL_PWD=< DB_PASSWORD > < CONTAINER_NAME > /usr/bin/mysqldump -u < DB_USER > --no-tablespaces < DATABASE_NAME > > dump.sql
```
### Toutes les tables
```bash
docker exec < CONTAINER_NAME > sh -c 'exec mysqldump --all-databases -u < DB_USER > -p < DB_PASSWORD > < DATABASE_NAME > ' > dump.sql
```
## Restauration
```bash
docker exec -i < CONTAINER_NAME > sh -c 'exec mysql -u < DB_USER > -p < DB_PASSWORD > < DATABASE_NAME > ' < dump.sql
```