2016-03-20 2 views
-2

Wenn ich mit einer containerisierten MySQL-Datenbank arbeite, die ursprünglich nicht mit freigegebenen Volume-Optionen ausgeführt wurde, was ist der einfachste Weg, die Daten extern zu sortieren? Gibt es noch eine Möglichkeit, den Container so zu ändern, dass er seine Daten mit dem Docker-Host in einem angegebenen Verzeichnis teilt?Wie sichere ich Daten vom MySQL-Container auf einem freigegebenen Datenträger?

Hinweis: Wenn Sie immer noch Probleme mit dieser Frage haben, kommentieren Sie bitte, damit ich sie weiter verbessern kann.

+0

Ich wünsche, dass die Leute näher erläutern können, warum diese Frage abgelehnt wird. –

+0

Vielleicht hat der Begriff "gute Praxis" jemanden inspiriert (nicht ich). Leute bevorzugen Fragen wie "Ich habe Problem U. Ich habe versucht V, es gab mir W, aber ich will X. Mein Code ist Y". Ihr gehört nicht in diese Kategorie. – PerlDuck

+0

Nun, ich möchte nicht wirklich über den Wert der Praxis streiten; es war nur eine Eröffnungsbemerkung. Aber darüber hinaus denke ich, dass ich hier ziemlich objektive Fragen aufgeworfen habe. –

Antwort

0

Offizielle Docker Dokumentation bietet eine große overview on how to backup, restore, or migrate data volumes. Für mein Problem, insbesondere, habe ich folgendes:

  1. Führen Sie einen Wegwerf-Docker-Container, Ubuntu läuft, teilt Volumes mit aktuell laufenden MySQL Container und sichert Daten in der Datenbank in der lokalen Maschine (wie in die Übersicht.):

    docker run --rm --volumes-from some-mysql -v /path/to/local/directory:backup ubuntu:15.10 tar cvf /backup/mysql.tar /var/lib/mysql

    (das offizielle MySQL Docker Bild verwendet /var/lib/mysql zum Speichern von Daten)

  2. der vorherige Schritt wird bei der Erstellung von /path/to/directory/mysql.tar im Docker Host führen. Dies kann nun wie extrahiert werden:

    tar -xvf mysql.tar

    (Unter der Annahme, cd /path/to/directory). Das resultierende Verzeichnis (/var/lib/mysql) kann jetzt als gemeinsam genutztes Volume mit derselben Instanz oder einer beliebigen anderen Instanz von MySQL in Containern verwendet werden.

Verwandte Themen