Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Gehen Daten verloren, wenn Sie den Docker-Container stoppen?

Gehen Daten verloren, wenn Sie den Docker-Container stoppen?

青灯夜游
青灯夜游Original
2022-02-23 16:38:1512509Durchsuche

Stoppen Sie den Docker-Container und die Daten gehen nicht verloren. Wenn der Docker-Container angehalten und beendet wird, bleiben die darin enthaltenen Daten erhalten und können nur dann angezeigt werden, wenn der Container gelöscht wird das Löschen des Containers.

Gehen Daten verloren, wenn Sie den Docker-Container stoppen?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.

Stoppen Sie den Docker-Container und die Daten gehen nicht verloren.

Wenn der Docker-Container stoppt und beendet wird, befindet er sich im beendeten Zustand, was dem Herunterfahren der virtuellen Maschine entspricht, sodass kein Datenverlust auftritt.

Zu diesem Zeitpunkt können Sie es über docker ps -a anzeigen und auch über docker start starten. Nur durch das Löschen des Containers werden die Daten gelöscht.

Erst nach Docker rm werden durch das Löschen des Containers die Daten gelöscht.

Erstellen Sie einen Container und löschen Sie dann den Container.

Wie lösche ich den Container, ohne die Daten zu löschen? Dies kann Ihr Problem lösen. dockerrun-vhost_dir:containere_dir

Erweiterte Kenntnisse: Beim Neustart des Containers werden die während der Ausführung des Containers generierten Protokoll- oder Datenbankdaten gelöscht.

Lösung:

Docker kann Daten dauerhaft speichern, indem das Host-Festplattenverzeichnis bereitgestellt wird.

1. Führen Sie das 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.

Geben Sie den Namen des Containers als Test an, der durch die Option ––name angegeben wird.

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.

2. 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 das Verzeichnis auf dem Host dar, nämlich /tmp/source .

Ziel ist das Verzeichnis im Container, nämlich /tmp/destination.

3. Native Dateien können mit dem Container synchronisiert werden

Erstellen Sie eine neue hello.txt-Datei im nativen/tmp/source-Verzeichnis.

touch /tmp/source/hello.txtls /tmp/source/hello.txt

Die hello.txt-Datei ist im Container/tmp/destination/directory 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.

4. 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 world.txt-Datei 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 verloren, wenn Sie den Docker-Container stoppen?. 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