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

Reagieren Sie auf den nativen ScrollView-Pulldown-Aktualisierungseffekt

In diesem Artikel wird der spezifische Code des P...

Mehrere Navigationsrichtungen, die in Zukunft beliebt sein werden

<br />Dies ist nicht nur ein Zeitalter der I...

Tutorial zum Verbinden und Verwenden von MySQL 8.0 im Maven-Projekt von IDEA

Schauen wir uns zunächst meine grundlegende Entwi...

Häufig verwendete JavaScript-Array-Methoden

Inhaltsverzeichnis 1. filter() 2. fürJedes() 3. e...

Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten

Dieser Artikel veranschaulicht anhand von Beispie...

So mounten Sie eine Datenfestplatte auf Tencent Cloud Server Centos

Überprüfen Sie zunächst, ob das Festplattengerät ...

Fallstudie zu den SQL ROW_NUMBER()- und OVER()-Methoden

Syntaxformat: row_number() über (Partition durch ...

Detailliertes Tutorial zum Erstellen eines Gitlab-Servers auf CentOS8.1

Über den Unterschied zwischen Gitlab und Github m...

So kapseln Sie die Rich-Text-Komponente von WangEditor in Angular

Die Rich-Text-Komponente ist eine sehr häufig ver...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

Detaillierte Erklärung der CocosCreator MVC-Architektur

Überblick Dieser Artikel stellt die in Spieleclie...