Szenariobeschreibung In einem bestimmten System wird der funktionale Dienst mit Daraufhin startete der Kunde den Server neu ... Als er sich beim Server anmeldete, um den Dienst neu zu starten, stellte er ein Problem fest: Die vorherigen Daten in der Datenbank konnten verschwinden (wenn Docker Run verwendet wird, um den Dienst erneut zu starten). Lösung Versuch 1 Ich dachte zunächst, die Daten seien definitiv verloren und musste die Daten noch einmal wiederherstellen, doch der Arbeitsaufwand war zu groß... Aber es gibt keine Möglichkeit, beim nächsten Start einfach den Speicher auf der Festplatte zu mounten, Orz Nach einer Diskussion mit meinen Kollegen fand ich jedoch eine einfachere (aber nicht dauerhafte) Lösung. Siehe Versuch 2. Versuch 2 Ein Kollege hat erwähnt, dass man mit Später habe ich darüber nachgedacht: Wenn die Daten des von Docker gestarteten Images nicht zugeordnet werden, werden sie im Standardvolume gespeichert. Selbst wenn der Container mit Docker-Neustart xxx neu gestartet wird, sind die geänderten Daten immer noch vorhanden. Das heißt, an diesem Punkt wird der Server neu gestartet und der Container hängt (verwenden Sie Docker PS zum Anzeigen, der Containerstatus lautet „Beendet“). Tatsächlich befinden sich die vorherigen Daten jedoch noch im Standardvolume, und die geänderten Daten gehen erst verloren, wenn der Container gelöscht wird. Verifizierungstest Packen Sie einfach ein Image, starten Sie den Container, erstellen Sie eine Datei, stoppen Sie ihn, starten Sie ihn erneut und prüfen Sie, ob die Datei vorhanden ist. # Starten Sie den Container ➜ docker_start_test docker run -itd --name docker_run_test 4cbf48630b46 ping 127.0.0.1 d6278f537113122d4ccbe00950790750215c5a09002bcbd1ef6f9e660fc9eaac ➜ docker_start_test docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN d6278f537113 4cbf48630b46 "ping 127.0.0.1" vor 3 Sekunden Up 2 Sekunden docker_run_test # Dateien zum Container hinzufügen ➜ docker_start_test docker exec -it docker_run_test /bin/sh sh-4.2# pwd / sh-4.2# Berührungstest sh-4.2# beenden Ausfahrt # Starten Sie den Container neu ➜ docker_start_test docker stop docker_run_test docker_run_test ➜ docker_start_test docker ps -a | grep docker_run_test d6278f537113 4cbf48630b46 "ping 127.0.0.1" Vor etwa einer Minute Beendet (137) vor 12 Sekunden docker_run_test # Gehen Sie hinein und prüfen Sie, ob die Datei existiert ➜ docker_start_test docker start docker_run_test docker_run_test ➜ docker_start_test docker exec -ti docker_run_test /bin/sh sh-4.2# ls anaconda-post.log bin dev etc home lib lib64 verloren+gefunden Medien mnt opt proc root run sbin srv sys test tmp usr var Wie Sie sehen, ist die Datei test immer noch vorhanden. Wenn Sie den Container stoppen, den Container mit docker rm löschen und einen Container mit demselben Namen neu starten, können Sie sehen, dass sich im Container keine Testdatei befindet. # Container stoppen / rm ➜ docker_start_test docker stop docker_run_test docker_run_test ➜ docker_start_test docker ps -a | grep docker_run d6278f537113 4cbf48630b46 "ping 127.0.0.1" vor 7 Minuten Beendet (137) vor 13 Sekunden docker_run_test ➜ docker_start_test docker rm d6278f537113 d6278f537113 # Starten Sie einen neuen Container mit demselben Namen ➜ docker_start_test docker run -itd --name docker_run_test 4cbf48630b46 ping 127.0.0.1 99a6f5df0a86e4c07abf184e322a23e4fbec89ff354691459cdac8fcd8687ba3 # Geben Sie den zu überprüfenden Container ein ➜ docker_start_test docker exec -ti docker_run_test /bin/sh sh-4.2# ls anaconda-post.log bin dev etc home lib lib64 verloren+gefunden Medien mnt opt proc root run sbin srv sys tmp usr var sh-4.2# ls-Test ls: kann nicht auf Test zugreifen: Keine solche Datei oder kein solches Verzeichnis Anweisungen für den Docker-Auslauf Laut der offiziellen Website lautet die Funktion des Startbefehls: Ähm, ziemlich unkompliziert, nicht viel zu sagen PS Tatsächlich besteht der beste Weg darin, das Speicherverzeichnis des Containers bereitzustellen. Darüber hinaus sollten Datenbankdienste im Allgemeinen nicht mithilfe von Containern gestartet werden. Zusammenfassen Oben habe ich Ihnen erklärt, was zu tun ist, wenn der von Docker Run gestartete Container die Daten aufhängt. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Probleme und Lösungen bei der Nutzung der MySQL-Datenbanküberwachungssoftware Lepus
>>: Beispiel für das Abhören des Vue-Routings zum dynamischen Laden derselben Seite
Was ist SQL? SQL ist eine Sprache zum Betrieb von...
In diesem Artikel wird der spezifische JavaScript...
Da es zu mühsam ist, jedes Mal das Installationst...
Inhaltsverzeichnis Wo ist der Quellcode des Apple...
Inhaltsverzeichnis Hintergrund erreichen 1. Gekap...
1. Einführung in LVM Bei der Verwaltung von Linux...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Inhaltsverzeichnis 1. Mutex 1. Initialisierung de...
Vorwort Der optionale Verkettungsoperator (?.) er...
<br />Statistiken zufolge hat sich die durch...
<meta http-equiv="X-UA-kompatibel" c...
Die Portzuordnung ist nicht die einzige Möglichke...
Voraussetzungen für die Installation von MySQL: I...
Inhaltsverzeichnis Vorwort Frühere Iterationen It...
Implementieren eines responsiven Layouts mit CSS ...