Mit der Popularität von Docker wurde begonnen, eine große Anzahl von Anwendungen in Docker-Containern bereitzustellen. Die Portabilitäts- und Isolationsvorteile von Docker verbessern die Effizienz und Stabilität der Anwendungsbereitstellung erheblich. Aufgrund der Isolation von Docker-Containern fühlen sich Menschen jedoch manchmal etwas hilflos. In diesem Artikel wird eine Methode zum Mounten eines Verzeichnisses vorgestellt, ohne den Docker-Container neu zu starten.
Zuerst müssen wir die Datenmengen von Docker verstehen. Ein Datenvolumen ist ein Mechanismus zum Speichern von Daten in einem Docker-Container. Es kann ein lokales Verzeichnis in einem Docker-Container bereitstellen, sodass die Daten im Container auf der lokalen Festplatte gespeichert werden können. Beim Starten eines Docker-Containers können Sie ein lokales Verzeichnis zum Mounten angeben, wie unten gezeigt:
docker run -v /localdir:/containerdir image_name
Darunter ist /localdir
das lokale Verzeichnis und /containerdir
Im Containerverzeichnis ist image_name
der Name des Docker-Images. /localdir
是本地的目录,/containerdir
则是容器内的目录,image_name
是Docker镜像的名称。
但是,当我们需要修改目录的挂载关系时,一般需要重新启动Docker容器。这样就会导致应用的停机时间增加,影响用户的使用体验。那么,如何在不重启Docker容器的情况下,修改挂载目录呢?
一种简单的方法是使用mount
命令。mount
命令可以实现文件系统的挂载和卸载操作,利用它,我们可以在不重启Docker容器的情况下,实现挂载目录的更改。具体操作步骤如下:
docker inspect -f '{{json .Mounts}}' container_name
其中,container_name
是指Docker容器的名称。
执行上述命令后,会返回容器中的挂载目录信息,其格式如下:
[ { "Type": "bind", "Source": "/var/data", "Destination": "/app/data", "Mode": "", "RW": true, "Propagation": "rprivate" } ]
其中,Type
是挂载类型,Source
是本地目录,Destination
是容器内目录,RW
表示读写权限。
mount --make-rprivate /var/data umount /var/data
上述命令中,--make-rprivate
选项用来将该目录设置为私有权限,以避免对其他进程产生影响。umount
mount
. Mit dem Befehl mount
können wir die Mount- und Unmount-Vorgänge des Dateisystems durchführen. Mit ihm können wir das Mount-Verzeichnis ändern, ohne den Docker-Container neu zu starten. Die spezifischen Schritte sind wie folgt: mount --bind /new/data /var/data
Dabei bezieht sich container_name
auf den Namen des Docker-Containers.
Nach der Ausführung des obigen Befehls werden die Informationen zum Montageverzeichnis im Container zurückgegeben. Das Format lautet wie folgt:
rrreee🎜Dabei istTyp
der Montagetyp und Quelle ist das lokale Verzeichnis, <code>Destination
ist das Verzeichnis innerhalb des Containers und RW
steht für Lese- und Schreibberechtigungen. 🎜--make-rprivate
verwendet, um das Verzeichnis auf zu vermeidende private Berechtigungen zu setzen Auswirkungen auf andere Prozesse haben. Der Befehl umount
wird zum Aushängen des Verzeichnisses verwendet. 🎜🎜🎜Mounten Sie ein neues Verzeichnis: 🎜🎜rrreee🎜Mit dem obigen Befehl mounten wir das neue Verzeichnis im Originalverzeichnis, um Verzeichnisänderungen zu erreichen. 🎜🎜Durch die oben genannten Schritte haben wir das Mountverzeichnis erfolgreich geändert, ohne den Docker-Container neu zu starten. Es ist zu beachten, dass Sie vor der Änderung alle Prozesse stoppen müssen, die das Verzeichnis belegen, wenn sich im Verzeichnis Dateien befinden, die verwendet werden, um Datenverlust zu vermeiden. 🎜🎜Docker bietet eine effiziente und praktische Container-Bereitstellungslösung, aber in der tatsächlichen Anwendung müssen wir seine Isolationseigenschaften vollständig verstehen und lernen, relevante Techniken zu verwenden, um verschiedene Probleme besser zu bewältigen. Ich glaube, dass Sie durch die Einleitung dieses Artikels eine Methode zum Mounten eines Verzeichnisses beherrschen, ohne den Docker-Container neu zu starten. Ich hoffe, dass sie Ihnen dabei helfen kann, mit tatsächlichen Anwendungsszenarien besser zurechtzukommen. 🎜Das obige ist der detaillierte Inhalt vonSo mounten Sie ein Verzeichnis, ohne Docker neu zu starten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!