Daten aus einem docker-compose MariaDB-Container mit mysqldump sichern

English Deutsch

Für Container mit einem in .env gespeicherten MYSQL_ROOT_PASSWORD

Dies ist die empfohlene Best Practice. Für dieses Beispiel gehen wir davon aus, dass .env so aussieht:

.env
MARIADB_ROOT_PASSWORD=mophur3roh6eegiL8Eeto7goneeFei

Um einen Dump zu erstellen:

create_dump.sh
source .env && docker-compose exec mariadb mysqldump -uroot -p${MARIADB_ROOT_PASSWORD} --all-databases > mariadb-dump-$(date +%F_%H-%M-%S).sql

Um einen Dump wiederherzustellen aus mariadb-dump.sql, stellen Sie sicher, dass der Container NICHT läuft vor diesem Befehl:

restore_dump.sh
source .env && docker-compose run -T mariadb mariadb -uroot -p${MARIADB_ROOT_PASSWORD} < mariadb-dump.sql

Beachten Sie, dass Sie mariadb durch den Namen Ihres Containers in docker-compose.yml ersetzen müssen.

Für Container mit einem MYSQL_ROOT_PASSWORD, das nicht in .env gespeichert ist

Dies ist sicher, aber Sie müssen typischerweise das Passwort mehrmals kopieren: Einmal für den mariadb-Container, einmal für den Container oder die Anwendung, die die Datenbank nutzt, und einmal für jedes Backup-Skript, das einen SQL-Dump der gesamten Datenbank exportiert

Um einen Dump zu erstellen:

create_dump_manual.sh
docker-compose exec mariadb mysqldump -uroot -pYOUR_MARIADB_ROOT_PASSWORD --all-databases > dump-$(date +%F_%H-%M-%S).sql

Um einen Dump wiederherzustellen aus mariadb-dump.sql:

restore_dump_manual.sh
docker-compose exec -T mariadb mysql -uroot -pYOUR_MARIADB_ROOT_PASSWORD  < mariadb-dump.sql

Ersetzen Sie YOUR_MARIADB_ROOT_PASSWORD durch das Passwort Ihrer Installation.

Außerdem müssen Sie mariadb durch den Namen Ihres Containers in docker-compose.yml ersetzen.

Für Container mit MYSQL_ALLOW_EMPTY_PASSWORD=yes

Diese Konfiguration ist ein Sicherheitsrisiko – siehe Das Sicherheitsrisiko beim Betreiben von Docker MariaDB/MySQL mit MYSQL_ALLOW_EMPTY_PASSWORD=yes.

Um einen Dump zu erstellen:

create_dump_empty_pw.sh
docker-compose exec mariadb mysqldump -uroot --all-databases > mariadb-dump-$(date +%F_%H-%M-%S).sql

Um einen Dump wiederherzustellen aus mariadb-dump.sql:

restore_dump_empty_pw.sh
docker-compose exec -T mariadb mysql -uroot < mariadb-dump.sql

Weitere Beiträge zu diesem Thema

TechOverflow plant derzeit einen Beitrag darüber, wie man bup verwendet, um schnelle & effiziente Backups von Docker-basierten MariaDB/MySQL-Installationen durchzuführen.


Check out similar posts by category: Docker