Daten aus einem docker-compose MariaDB-Container mit mysqldump sichern
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:
MARIADB_ROOT_PASSWORD=mophur3roh6eegiL8Eeto7goneeFeiUm einen Dump zu erstellen:
source .env && docker-compose exec mariadb mysqldump -uroot -p${MARIADB_ROOT_PASSWORD} --all-databases > mariadb-dump-$(date +%F_%H-%M-%S).sqlUm einen Dump wiederherzustellen aus mariadb-dump.sql, stellen Sie sicher, dass der Container NICHT läuft vor diesem Befehl:
source .env && docker-compose run -T mariadb mariadb -uroot -p${MARIADB_ROOT_PASSWORD} < mariadb-dump.sqlBeachten 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:
docker-compose exec mariadb mysqldump -uroot -pYOUR_MARIADB_ROOT_PASSWORD --all-databases > dump-$(date +%F_%H-%M-%S).sqlUm einen Dump wiederherzustellen aus mariadb-dump.sql:
docker-compose exec -T mariadb mysql -uroot -pYOUR_MARIADB_ROOT_PASSWORD < mariadb-dump.sqlErsetzen 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:
docker-compose exec mariadb mysqldump -uroot --all-databases > mariadb-dump-$(date +%F_%H-%M-%S).sqlUm einen Dump wiederherzustellen aus mariadb-dump.sql:
docker-compose exec -T mariadb mysql -uroot < mariadb-dump.sqlWeitere 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.