MariaDB mySQL backup und wiederherstellen in Docker

Sobald du Docker benutzt, um dir eine MariaDB / mySQL Datenbank einzurichten, wirst du merken, dass es ein wenig komplizierter wird hier eine existierende Datenbank einzuspielen.

Da die Container von deinem Betriebssystem abgetrennt sind, ist hier über einen Kniff die Funktionalität zu holen.

Einerseits kannst du über die docker-compose.yml dir einen Pfad in den Docker-Container freigeben, dich dann auf den Datenbank-Container verbinden und mit dem mysql-befehl importieren. Oder du nutzt folgenden Einzeiler, um deine Datenbank zu im-/exportieren.

Backup mittels `mysqldump`

docker exec db_container_name mysqldump [--user nutzername] [--password=deinpasswort] datenbank_name > /dein/backup/pfad/db.sql

Merke:
Der Befehl mysqldump funktioniert für MariaDB, wie auch für mySQL-Datenbanken, egal welche du gerade benutzt. Diese Funktion ist standardmäßig auf den Containern von (link: https://hub.docker.com/_/mariadb text: MariaDB target: _blank) und (link: https://hub.docker.com/_/mysql text: mySQL target: _blank) installiert.

Wiederherstellen der Datenbank

docker exec -i db_container_name mysql [--user nutzername] [--password=deinpasswort] datenbank_name < /dein/backup/pfad/db.sql

Backup und Wiederherstellen in einem Befehl

Falls du mal zu dem Fall kommst, dass du die Datenbank aus einem Datenbank-Container exportieren und in einen neuen importieren möchtest, hilft dir folgender Befehl:

docker exec db_container_name mysqldump [--user nutzername] [--password=deinpasswort] datenbank_name | docker exec -i zweiter_db_container_name mysql [--user nutzername] [--password=deinpasswort] -C datenbank_name

Cheers!