Heim > Artikel > Betrieb und Instandhaltung > Gehen Daten nach dem Neustart des Docker-Containers verloren?
Daten gehen nach dem Neustart des Docker-Containers verloren. Sie können jedoch „Volume“ oder „Datencontainer“ verwenden, um Datenpersistenz zu erreichen. Nach dem Schließen des Containers können Sie „-v“ oder „--volumes-from“ verwenden Verwenden Sie die vorherigen Daten wieder, Docker Sie können auch das Host-Festplattenverzeichnis bereitstellen, um Daten dauerhaft zu speichern.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
Ja, wenn Sie Docker zum Bereitstellen von Webanwendungen oder MySQL-Datenbanken verwenden, werden Sie feststellen, dass beim Neustart des Containers die während der Ausführung des Docker-Containers generierten Protokolle oder Datenbankdaten gelöscht werden Der Container wird geleert.
Wenn Sie Datenpersistenz wünschen, müssen Sie ein Volume oder einen Datencontainer verwenden, damit Sie die vorherigen Daten nach dem Schließen des Containers über -v oder --volumes-from wiederverwenden können. Docker mountet das Host-Festplattenverzeichnis, um Daten dauerhaft zu speichern.
Führen Sie Docker Volume aus, wenn Sie einen Container erstellen
Verwenden Sie den Befehl „docker run“, um einen Docker-Container auszuführen, verwenden Sie das Image ubuntu/nginx, mounten Sie das lokale Verzeichnis /tmp/source im Containerverzeichnis /tmp/destination
docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash
Basierend auf Ubuntu/ Das Nginx-Image erstellt einen Docker-Container. Der Name des angegebenen Containers ist test und wird durch die Option ––name angegeben.
Docker Volume wird durch die Option ––volume (kann als -v abgekürzt) angegeben. Das Verzeichnis /tmp/source des Hosts entspricht dem Verzeichnis /tmp/destination im Container.
Docker-Volume anzeigen
Verwenden Sie den Befehl docker inspect, um die detaillierten Informationen des Docker-Containers anzuzeigen:
docker inspect --format='{{json .Mounts}}'test | python -m json.tool[{"Destination": "/tmp/destination", "Mode": "","Propagation": "","RW": true,"Source": "/tmp/source","Type": "bind"}]
Verwenden Sie die Option ––format, um die erforderlichen Containerinformationen selektiv anzuzeigen. .Mount sind die Docker-Volume-Informationen des Containers.
python -m json.tool kann die ausgegebene JSON-Zeichenfolge formatieren und anzeigen. Quelle stellt ein Verzeichnis auf dem Host dar, nämlich /tmp/source . Ziel ist das Verzeichnis im Container, nämlich /tmp/destination.
Native Dateien können mit dem Container synchronisiert werden
Erstellen Sie eine neue hello.txt-Datei im lokalen/tmp/source-Verzeichnis.
touch /tmp/source/hello.txtls /tmp/source/hello.txt
Die hello.txt-Datei ist im Container/tmp/destination/-Verzeichnis sichtbar Mit dem Docker-Exec-Befehl können Sie Befehle im Container ausführen.
docker exectest ls /tmp/destination/hello.txt
So können Änderungen am Verzeichnis /tmp/source/ auf dem Host mit dem Containerverzeichnis /tmp/destination/ synchronisiert werden.
Containerdateien können mit dem Host synchronisiert werdenErstellen Sie eine neue world.txt-Datei im Verzeichnis „container/tmp/destination“
docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt
Die Datei „world.txt“ ist im Verzeichnis host/tmp/source/ sichtbar
ls /tmp/ source/hello.txt world.txt
Empfohlenes Lernen: „
Docker-Video-TutorialDas obige ist der detaillierte Inhalt vonGehen Daten nach dem Neustart des Docker-Containers verloren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!