Leere Datenbank im MariaDB-Container

Ich betreibe meine Datenbank mit Docker und Docker-Compose. Leider bindet Docker das Verzeichnis auf dem Server nicht ein. Warum funktioniert der Mount nicht?

vorlesen Druckansicht
Lesezeit: 1 Min.

Ich betreibe meine Datenbank mit Docker und Docker-Compose. Als ich eine MariaDB vom alten Server zum neuen umzog, habe ich den Container zuerst in der Standardkonfiguration ausprobiert und danach den Ordner mit den bestehenden Daten als Mount einbezogen. Leider scheint Docker das Verzeichnis auf den neuen Server einfach nicht einzubinden, obwohl ich es in der Docker-Compose-Datei unter volumes: angegeben und alles mit docker compose up gestartet habe. Warum funktioniert der Mount nicht?

Docker hat den Container zuerst ohne das eingehängte Volume hochgefahren. Um später ein neues Volume einzurichten, muss Docker den Container entfernen und einen neuen mit Volume anlegen. Dass das Volume fehlt, sehen Sie, wenn Sie den folgenden Befehl ausführen:

docker inspect -f '{{ .Mounts }}'« » <containername>

Sie müssen Docker einmalig zwingen, den Container abzureißen und mit neuen Einstellungen anzulegen. Mit docker compose up erreichen Sie das, indem Sie den Parameter --force-recreate anhängen. Wenn Sie diese Möglichkeit nicht haben, weil Sie zum Beispiel das Docker-Compose-Modul für Ansible benutzen, müssen Sie den Container einmal per Hand entsorgen. Melden Sie sich auf dem Server an und führen die Befehle docker stop <containername> und docker rm <containername> aus. Wenn Sie danach ansible-playbook ausführen, erzeugt Docker den gelöschten Container mitsamt Mount neu.

(pmk)