Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Gehen Daten nach dem Neustart des Docker-Containers verloren?

Gehen Daten nach dem Neustart des Docker-Containers verloren?

WBOY
WBOYOriginal
2022-06-17 10:41:0011036Durchsuche

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.

Gehen Daten nach dem Neustart des Docker-Containers verloren?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.

Gehen Daten verloren, nachdem der Docker-Container neu gestartet wurde?

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 werden

Erstellen 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-Tutorial

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist Docker ein Container?Nächster Artikel:Ist Docker ein Container?