So stellen Sie Docker-Containerdaten wieder her

So stellen Sie Docker-Containerdaten wieder her

Die Datenbankdaten der Projekttestumgebung sind verloren gegangen, daher möchte ich diese aufzeichnen. Es wurde damals mit Docker installiert, da man davon ausging, dass es nur vorübergehend für einen bestimmten Zeitraum verwendet und nicht dauerhaft sein würde. Vorgestern war plötzlich das Docker-Log voll und mein Kollege wollte das Log bereinigen und verwendete dazu folgenden Befehl:

Docker-System bereinigen

Infolgedessen war der MySQL-Container zu diesem Zeitpunkt normalerweise im gestoppten Zustand, wurde aber plötzlich beendet. Die Daten, die wir gesichert hatten, stammten aus dem März, was furchtbar war. Dann wurden verschiedene Studien wieder aufgenommen.

Dann habe ich mir die offizielle Dokumentation angesehen, um zu untersuchen, was dieser Befehl bewirkt. docker system prune bedeutet:

Entfernen Sie alle nicht verwendeten Container, Netzwerke, Bilder (sowohl hängende als auch nicht referenzierte) und optional Volumes.

Entfernen Sie alle nicht verwendeten Container, Netzwerke, Bilder (hängende und nicht referenzierte Bilder) und optional Volumes.

Standardmäßig werden Volumes nicht entfernt, um zu verhindern, dass wichtige Daten gelöscht werden, wenn das Volume aktuell von keinem Container verwendet wird. Verwenden Sie beim Ausführen des Befehls auch das Flag --volumes , um Volumes zu bereinigen:

Wenn das Volume aktuell von keinem Container verwendet wird, wird es standardmäßig nicht gelöscht, um die Löschung wichtiger Daten zu verhindern. Sie können beim Ausführen des Befehls zum Bereinigen von Volumes auch das Flag --volumes verwenden:

Jetzt bin ich erleichtert. Zum Glück wurde das Datenvolumen nicht gelöscht. Wir können das Datenvolumen verwenden, um die Daten wiederherzustellen. Als nächstes werde ich meinen Wiederherstellungsplan aufzeichnen.

1. Suchen Sie den Speicherort des Datenträgers

Das Datenvolumenverzeichnis befindet sich unter /var/lib/docker/volumes . Jeder Container hat einen Ordner unter diesem Verzeichnis. Wenn der Container noch existiert, können wir docker inspect 容器ID verwenden, um den Speicherort des Datenvolumens anzuzeigen. Was können wir nun tun, da der Container gelöscht wurde? Wir können nur nacheinander nach ihnen suchen. Im Allgemeinen gibt es unter dem Datenvolumenverzeichnis des MySQL-Containers ein Verzeichnis _data , in dem die Ordner jeder Datenbank angezeigt werden, und schließlich werden sie gefunden.

Bild-20210510113543085

Bild-20210510114631505

Dieses cxhello ist unsere Testbibliothek, jetzt können wir die Daten wiederherstellen.

2. Wiederherstellung

Verwenden Sie docker volume create 數據卷名字um ein neues Volume zu erstellen, und docker volume ls um die Liste der Volumes anzuzeigen.

Bild-20210510114945865

Hinweis: Wenn Sie zum Mounten ein Datenvolume verwenden, muss das Datenvolume ein leeres Verzeichnis sein, das heißt, es darf keine Daten enthalten.

Erstellen Sie dann den Container

docker run -d -p 3309:3306 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name huifu mysql:5.7

Bild-20210510115714866

Bevor Sie Daten wiederherstellen, müssen Sie den zugehörigen Inhalt im neu erstellten Datenvolume löschen und dann den Inhalt des vorherigen Datenvolumes zur Datenwiederherstellung auf das aktuelle Datenvolume kopieren.

cd /var/lib/docker/volumes/mysqldata/_data/
rm -f *
rm -f -R *

Bild-20210510130608341

Inhalt auf Datenträger kopieren

cd /var/lib/docker/volumes/1db16a9dfdf3442b117ebc2ec11df5df4db717cfd567c77fa0a49905a9652fa0/_data/
cp -R * /var/lib/docker/volumes/mysqldata/_data/

Bild-20210510131213523

An diesem Punkt ist die Wiederherstellung der Datenbankdaten abgeschlossen. Rufen Sie den wiederhergestellten Container auf, um ihn anzuzeigen

Bild-20210510131728135

Verweise

https://docs.docker.com/engine/reference/commandline/system_prune/

https://www.cnblogs.com/cheyunhua/p/13433400.html

Dies ist das Ende dieses Artikels zum Wiederherstellen von Docker-Containerdaten. Weitere Informationen zur Wiederherstellung von Docker-Containerdaten finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Schritte zum Wiederherstellen von Code aus einem Docker-Container-Image
  • Detaillierte Erläuterung des Docker-Datensicherungs- und Wiederherstellungsprozesses
  • Detaillierte Erläuterung der Sicherung und Wiederherstellung von PSSQL-Datenbanken in Docker
  • Detaillierte Erläuterung der Sicherung, Wiederherstellung und Migration von Containern in Docker
  • Detaillierte Erläuterung des Docker Private Warehouse-Wiederherstellungsbeispiels

<<:  Eine Methode zum Erstellen von Karussellbildern mit CSS3

>>:  Designtheorie: Textausdruck und Benutzerfreundlichkeit

Artikel empfehlen

Vue3.0 implementiert die Fallstudie zum Lupeneffekt

Der zu erzielende Effekt ist: Festes Vergrößern a...

SQL zur Implementierung der Wiederherstellung einer Zeitreihenversetzung

Inhaltsverzeichnis 1. Anforderungsbeschreibung 2....

Lösen Sie das Problem der Randzusammenführung

1. Die Ränder von Geschwisterelementen zusammenfü...

Klasse in Front-End-JavaScript

Inhaltsverzeichnis 1. Klasse 1.1 Konstruktor() 1....

Bei MySQL-Zeichentypen wird die Groß-/Kleinschreibung beachtet.

Standardmäßig sind MySQL-Zeichentypen nicht case-...

Lösung für das Problem mit verstümmelten chinesischen MySQL-Zeichen

1. Die chinesischen verstümmelten Zeichen erschei...

JavaScript implementiert Countdown auf Front-End-Webseite

Verwenden Sie natives JavaScript, um den Countdow...

Eine kurze Einführung in React

Inhaltsverzeichnis 1. CDN-Einführung 1.1 reagiere...

Vue3 basierend auf der Skript-Setup-Syntax $refs-Verwendung

Inhaltsverzeichnis 1. Vue2-Syntax 2. Nutzung von ...

Zabbix überwacht den Prozess der Linux-Systemdienste

Zabbix erkennt automatisch Regeln zur Überwachung...