Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Das ausführlichste Tutorial zum Organisieren von Docker-Datenvolumes

Das ausführlichste Tutorial zum Organisieren von Docker-Datenvolumes

WBOY
WBOYnach vorne
2022-02-23 17:32:252079Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Datenvolumes in Docker. Änderungen an den Datenvolumes werden nicht in die Aktualisierung des Images einbezogen. helfen.

Das ausführlichste Tutorial zum Organisieren von Docker-Datenvolumes

Empfohlene Studie: „Docker-Video-Tutorial

Was ist ein Datenvolumen?

Bei Verwendung eines Docker-Containers werden eine Reihe von Datendateien generiert, wenn der Docker-Container verschwindet wird gelöscht, aber es wird erwartet, dass ein Teil des generierten Inhalts für eine andere Verwendung gespeichert wird. Die Programmierer hoffen, dass einige der während des laufenden Prozesses generierten Daten beibehalten werden können um Daten zwischen Containern austauschen zu können.

Im Allgemeinen kann das Docker-Container-Datenvolumen als häufig verwendetes USB-Laufwerk betrachtet werden. Es befindet sich in einem oder mehreren Containern und wird von Docker in den Container eingebunden. Es gehört jedoch nicht zum gemeinsamen Dateisystem Löschen Sie es nicht im Container. Löschen Sie das bereitgestellte Datenvolumen.

Funktionen von Datenvolumes

Datenvolumes können Daten zwischen Containern teilen oder wiederverwenden

Änderungen am Datenvolumen können sofort wirksam werden

Änderungen am Datenvolumen werden nicht in die Aktualisierung des Spiegels einbezogen

Standardmäßig ist Das Datenvolumen bleibt immer bestehen, auch wenn der Container gelöscht wird

Der Lebenszyklus des Datenvolumens wird fortgesetzt, bis es von keinem Container mehr verwendet wird

Verwaltungsdaten im Container

Datenvolumes: Datenvolumes Daten im Container werden direkt zugeordnet die lokale Host-Umgebung

Allgemeine Parameter

-L: Quell-Links im Ziel behalten

Grundlegende Verwendung

Hostdateien in den Container kopieren

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

Dateien im Container auf den Host kopieren

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

Docker-Datenvolumes

Datenvolumes (Data Für einen oder mehrere Container stehen Volumes zur Verfügung. Es wird ein spezielles Verzeichnis verwendet, das das Verzeichnis des Host-Betriebssystems direkt in den Container abbildet.

Hinweise zu Datenvolumes

Um ein Datenvolume bereitzustellen, erstellen Sie am besten einen Startcontainer über „Ausführen“ statt über „Erstellen/Starten“. Nachdem der Befehl „Erstellen/Starten“ einen Startcontainer erstellt hat, ist das Mounten ziemlich mühsam Datenvolumen. Viele Konfigurationen müssen geändert werden, aber nicht unmöglich.

Die offizielle Website von Docker empfiehlt, möglichst viele Verzeichnisse anstelle von Dateien zu mounten Volumen: Ein von Docker verwaltetes Datenvolumen auf der Festplatte, aber dieses Volumen hat einen Namen.

Anonymes Datenvolumen: Ein von Docker verwaltetes Datenvolumen auf der Festplatte. Es ist nicht leicht zu finden, da es keinen Namen gibt.

Host-Datenvolumen

Bind-Mounts: Die Daten im Container werden an einer beliebigen Stelle im Host-Dateisystem gespeichert, sogar in einigen wichtigen Systemverzeichnissen oder Dateien. Andere Prozesse als Docker können sie auch beliebig ändern.

Bei Verwendung von Bind-Mounts wird das Hostverzeichnis oder die Hostdatei in den Container gemountet. Der Container verwendet oder ändert die Daten des Hosts entsprechend dem absoluten Pfad des Mountverzeichnisses oder der Mountdatei. Verzeichnisse oder Dateien auf dem Host müssen nicht im Voraus vorhanden sein und werden bei Bedarf automatisch erstellt.

Die Verwendung von Bind-Mounts ist hinsichtlich der Leistung sehr gut, hängt jedoch davon ab, dass der Host-Computer über ein gut strukturiertes Dateisystem verfügt.

Container, die Bind-Mounts verwenden, können das Host-Dateisystem durch den Prozess innerhalb des Containers ändern, einschließlich des Erstellens, Änderns und Löschens wichtiger Systemdateien und Verzeichnisse. Obwohl diese Funktion sehr leistungsfähig ist, hat sie natürlich auch Auswirkungen auf andere Prozesse als Docker auf dem Host

Hinweise

Wenn Sie ein leeres Datenvolumen in einem nicht leeren Verzeichnis im Container bereitstellen, werden die Dateien in diesem Verzeichnis auf das Datenvolumen kopiert

Wenn Sie ein nicht leeres Datenvolumen bereitstellen in ein Verzeichnis im Container, und das Verzeichnis im Container zeigt die Daten im Datenvolumen an. Wenn im Originalverzeichnis im Container Daten vorhanden sind, werden die Originaldaten ausgeblendet

Grundlegende Verwendung

Syntax

docker cp /data/index.html nginx:/usr/share/nginx/html/index.html

Grundlegende Verwendung

docker cp nginx:/etc/nginx/nginx.conf /data

Berechtigungen für Containerverzeichnisse

Pass -v Pfad innerhalb des Containers: ro rw Änderung lesen und Schreibberechtigungen ro :readonly Nur lesen

rw:readwrite Lesbar und beschreibbar

docker run -it -v /Absolutes Pfadverzeichnis des Hosts:/Containerverzeichnis:ro Bildname

docker run -it -v /Absolutes Pfadverzeichnis des Hosts :/Verzeichnis im Container: rw Bildname

Zum Beispiel:

docker run -v /宿主机绝对路径目录:/容器内目录 镜像名

ro Solange ro angezeigt wird, bedeutet dies, dass dieser Pfad nur über den Host und nicht innerhalb des Containers betrieben werden kann!

Benanntes Datenvolumen

Basic Verwenden Sie

docker run -itd --name mysql --restart always --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin
-v /data/mysql:/var/lib/mysql mysql:5.7.31 --character-set-server=utf8 --collation-server=utf8_general_ci

alpine

, um das Docker-Datenvolumen anzuzeigen. Docker-Volume ls

Zeigen Sie das lagouedu-nginx-Hostverzeichnis an s

Alle Dateien werden standardmäßig im Docker gespeichert_ cd _data im Datenverzeichnis

Container löschen

docker rm $(docker stop $(docker ps -aq))

查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在

ls

匿名数据卷

基本使用

docker run -itd --name nginx -p 80:80 -v /etc/nginx nginx:1.19.3-alpine 查看docker数据卷
docker volume ls

查看宿主机目录

docker volume inspect dbd07daa4e40148b11....

进入docker数据卷默认目录

cd /var/lib/docker/volumes/dbd07daa4e40148b11....

查看文件

ls

所有的文件docker默认保存在_data目录中 cd _data

删除容器

docker rm $(docker stop $(docker ps -aq))

查看挂载数据是否还存在,通过查看数据,发现删除容器后,宿主机中的数据还存在

ls

数据卷容器

run命令

常用参数

--volumes-from

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器

也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。

发现创建好的数据卷容器是处于停止运行的状态,因为使用 —volumes-from 参数所挂载数据卷的容器 自己并不需要保持在运行状态。

Das ausführlichste Tutorial zum Organisieren von Docker-Datenvolumes

基本使用

docker run -d --name data-volume -v /data/nginx:/usr/share/nginx/html -v
/data/mysql:/var/lib/mysql centos:7.8.2003
docker run -itd --name nginx01 -p 80:80 --volumes-from data-volume nginx:1.19.3-
alpine
echo "nginx" > /data/nginx/index.html
http://192.168.198.100
docker run -itd --name nginx02 -p 81:80 --volumes-from data-volume nginx:1.19.3-
alpine
http://192.168.198.100:81
docker run -itd --name mysql01 --restart always --privileged=true -p 3306:3306
 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 --
character-set-server=utf8 --collation-server=utf8_general_ci
docker run -itd --name mysql02 --restart always --privileged=true -p 3307:3306
 -e MYSQL_ROOT_PASSWORD=admin --volumes-from data-volume mysql:5.7.31 --
character-set-server=utf8 --collation-server=utf8_general_ci

推荐学习:《docker视频教程

Das obige ist der detaillierte Inhalt vonDas ausführlichste Tutorial zum Organisieren von Docker-Datenvolumes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.im. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen