Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Gehen Daten nach dem Neustart von Docker verloren?

Gehen Daten nach dem Neustart von Docker verloren?

尚
Original
2020-03-26 14:11:0013453Durchsuche

Gehen Daten nach dem Neustart von Docker verloren?

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 Containers generierten Protokolle oder Datenbankdaten gelöscht werden.

Lösung:

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

1. Führen Sie beim Erstellen eines Containers Docker Volume aus.

Verwenden Sie den Docker-Run-Befehl, um einen Docker-Container auszuführen, verwenden Sie das Image ubuntu/nginx und mounten Sie das lokale Verzeichnis /tmp/source das Containerverzeichnis /tmp /destination

docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash

Erstellt einen Docker-Container basierend auf dem Ubuntu/Nginx-Image.

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.

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, d. h. /tmp/source .

Ziel ist das Verzeichnis im Container, also /tmp/destination.

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

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

tippen Sie auf /tmp/source/hello .txtls /tmp/source/hello.txt

Die Datei hello.txt ist im Verzeichnis container/tmp/destination/ sichtbar

Verwenden Sie den Docker-Exec-Befehl, um Befehle im Container auszuführen.

docker exectest ls /tmp/destination/hello.txt

So können Änderungen am Verzeichnis /tmp/source/ auf dem Host-Rechner mit dem Containerverzeichnis /tmp/destination/ synchronisiert werden.

4. Die Containerdatei kann mit dem Host-Computer 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

Weitere verwandte Tutorials finden Sie in der Spalte Docker-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonGehen Daten nach dem Neustart von Docker 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