Es gibt offensichtliche Unterschiede zwischen der Volume-Montage in Dockerfile und der Montage mit dem Befehl docker -v: 1. VOLUMENDas auf dem Hostcomputer in Dockerfile mit VOLUME gemountete Volume ist ein anonymes Volume. Auf dem Hostcomputer wird es automatisch anonym im Verzeichnis /var/lib/docker/volumes/ gemountet. Der Code lautet wie folgt: VON frolvlad/alpine-java:jre8-slim BEWAHRER oas.cloud KOPIEREN Sie nickdir. VOLUME /usr/local/oas/Datei/ ARBEITSVERZEICHNIS /usr/local/oas/ Das oben genannte VOLUME /usr/local/oas/file/ definiert den Pfad des Verzeichnisses im Container. Das Verzeichnis wird während des Containererstellungsprozesses im Container erstellt und der Name des Mount-Verzeichnisses auf dem Host wird zufällig generiert. Zum Beispiel:
Hier auf dem Host-Rechner
Das Verzeichnis entspricht dem Verzeichnis /usr/local/oas/file/ im Container 2. Docker -vdocker -v kann das spezifische Verzeichnis angeben, das auf dem Hostcomputer gemountet ist, was besser steuerbar ist als die VOLUME-Mounting-Methode von Dockerfile. Der Code lautet wie folgt: $ docker run --name tengine-web -d -p 9527:80 -p 9000:9000 \ -v /usr/local/tengine/logs:/var/log/nginx \ -v /usr/local/tengine/conf.d:/etc/nginx/conf.d \ -v /usr/local/tengine/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/tengine/html:/usr/share/nginx/html \ -v /usr/local/oas/Datei:/usr/local/oas/Datei nginx Der obige Befehl kann /usr/local/tengine/logs und andere Verzeichnisse des Hosts in /var/log/nginx und andere entsprechende Verzeichnisse des Containers mounten. Der Pfad vor dem Doppelpunkt ist das Host-Verzeichnis (absoluter Pfad) und der Pfad nach dem Doppelpunkt ist der im Image gemountete Pfad (absoluter Pfad). Ergänzung: Der Unterschied zwischen den Docker-Datenvolume-Mounting-Befehlen volume (-v) und mount 1. EinleitungBenutzer können Container mit Datenvolumes erstellen, indem sie die Optionen --volume/-v oder --mount von Docker Run verwenden. Es gibt jedoch einige subtile Unterschiede zwischen diesen beiden Optionen, die hier zusammengefasst sind. 2. Befehlsverwendung Der Parameter --volume (kurz -v) kann lediglich ein Bind-Mount erstellen. Beispiel: docker run --name $CONTAINER_NAME -it \ -v $PWD/$CONTAINER_NAME/app:/app:rw \ -v $PWD/$CONTAINER_NAME/Daten:/Daten:ro \ avocado-cloud:latest /bin/bash Hinweise: Befehlsformat: [[HOST-DIR:]CONTAINER-DIR[:OPTIONEN]]] Wenn HOST-DIR angegeben ist, muss es sich um einen absoluten Pfad handeln. Wenn der Pfad nicht existiert, wird er automatisch erstellt. Im Beispiel bedeutet rw Lesen/Schreiben und ro bedeutet schreibgeschützt. Der Parameter --mount wird standardmäßig zum Mounten von Volumes verwendet, kann aber auch zum Erstellen von Bind-Mounts und TMPFs verwendet werden. Wenn die Typoption nicht angegeben ist, wird das Volume standardmäßig gemountet. Volumes sind eine flexiblere Möglichkeit zur Datenverwaltung. Volumes können über den Docker-Volume-Befehlssatz verwaltet werden. Beispiel: docker run --name $CONTAINER_NAME -it \ --mount Typ=Binden,Quelle=$PWD/$CONTAINER_NAME/App,Ziel=/App \ --mount Quelle=${CONTAINER_NAME}-data,Ziel=/data,schreibgeschützt \ avocado-cloud:latest /bin/bash Hinweise: Format des Befehls zum Mounten des Volumes: [Typ=Volume,]Quelle=mein-Volume,Ziel=/Pfad/in/Container[,...] Erstellen Sie ein Bind-Mount-Befehlsformat: Typ=Binden,Quelle=/Pfad/auf/Host,Ziel=/Pfad/in/Container[,...] Wenn Sie eine Bind-Mount erstellen und eine Quelle angeben, muss es sich um einen absoluten Pfad handeln und der Pfad muss bereits vorhanden sein. Im Beispiel bedeutet readonly schreibgeschützt 3. Zusammenfassung der Unterschiede1. Vergleich zwischen dem Erstellen eines Bind-Mounts und dem Mounten eines Volumes
*Hinweise: Docker kann den Inhalt des Volumes nicht einfach für normale Benutzer auf dem Host über sudo chown someuser: -R /var/lib/docker/volumes/somevolume öffnen. Wenn mehr Berechtigungen geöffnet werden, entstehen Sicherheitsrisiken. In dieser Hinsicht ist das Design von Podman viel idealer. Das Volume wird im Pfad $HOME/.local/share/containers/storage/volumes/ gespeichert, was Komfort bietet und Sicherheit gewährleistet. Der Container kann ohne Root-Rechte ausgeführt werden, was einer der Vorteile von Podman ist. Im praktischen Einsatz bringt das wirklich große Vorteile. 2. Vergleich der Verwendung von --volume und --mount beim Erstellen eines Bind-Mounts
Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Die Organisation W3C gibt Stilempfehlungen für HTML4
Bei vielen Benutzern ist dieser Fehler beim Start...
<br />Das Lesen ist ein sehr wichtiger Teil ...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Einleitung 2. Warum brauche...
Ausleihen von Konstruktoren Die Grundidee dieser ...
01 Winterflocken (nur einzeln) 02 Snowtop Caps (k...
1. Stoppen Sie zuerst den MySQL-Dienst Öffnen Sie...
1. Hintergrund Im Allgemeinen verwenden wir für D...
Linux: Linux-Version 3.10.0-123.9.3.el7.x86_64 Ng...
(1) Jedes HTML-Tag hat ein Attribut style, das CS...
Der Unterschied zwischen := und = = Nur beim Setz...
Vielleicht habe ich angefangen, falsch zu denken,...
Existiert die Zeit wirklich? Manche Menschen glau...
1 Starten Sie den Docker-Dienst Zuerst müssen Sie...
Die wichtigsten Protokolle im MySQL-Protokollsyst...