Docker mountet lokale Verzeichnisse und Datenvolumen-Container-Operationen

Docker mountet lokale Verzeichnisse und Datenvolumen-Container-Operationen

1. Docker mountet das lokale Verzeichnis

Docker kann das Einbinden eines Verzeichnisses auf dem Host in das Image unterstützen.

Im interaktiven Modus ausführen

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash

Hintergrundvorgang

docker run -d -v /home/dock/Downloads:/usr/Downloads --name ubuntu1 ubuntu64

Durch den Parameter -v ist der Pfad vor dem Doppelpunkt das Hostverzeichnis, das ein absoluter Pfad sein muss, und der Pfad nach dem Doppelpunkt ist der im Image gemountete Pfad.

Jetzt können die Dateien auf dem Hostcomputer im Image freigegeben werden.

Die Standardberechtigungen für den Bereitstellungspfad sind Lesen und Schreiben. Wenn Sie es als schreibgeschützt angeben, können Sie Folgendes verwenden: ro

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash

2. Docker-Datenvolumencontainer

Docker bietet auch eine erweiterte Nutzung. Es wird als Datenvolumen bezeichnet.

Datenvolumen: „Eigentlich handelt es sich um einen normalen Container, der speziell dazu dient, Datenvolumen für die Einbindung anderer Container bereitzustellen.“ Es fühlt sich an wie eine durch einen Container definierte Datenmount-Information. Andere Containerstarts können die im Datenvolumencontainer definierten Bereitstellungsinformationen direkt bereitstellen.

Beispiel:

docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash

Erstellen Sie einen normalen Container. Verwenden Sie --name, um ihm einen Namen zuzuweisen (wenn nicht angegeben, wird ein zufälliger Name generiert).

Erstellen Sie einen neuen Container um dieses Datenvolumen zu nutzen.

docker run -it --volumes-from dataVol ubuntu64 /bin/bash

--volumes-from wird verwendet, um anzugeben, von welchem ​​Volume die Daten gemountet werden sollen.

Auf diese Weise wird das Verzeichnis /usr/Downloads im neu erstellten Container mit dem Hostverzeichnis /home/dock/Downloads synchronisiert.

Ergänzendes Wissen: Linux-Reihe - Docker realisiert die Lokalisierung der Containerkonfiguration durch Mounten von Datenvolumes in MySQL

Ziehen Sie das MySQL-Image

Docker-Pull MySQL

Erstellen und Ausführen des MySQL-Containers (Mounten des Datenträgers in MySQL)

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d MySQL

Nach dem Ausführen der obigen Anweisungen kann der MySQL-Container nicht gestartet werden. Der gemeldete Fehler besteht darin, dass beim Lesen der Datei /var/lib/mysql-file ein Fehler aufgetreten ist.

#################Lösen Sie das Problem, dass MySQL oben nicht gestartet werden kann#################

Verknüpfen Sie das lokale Konfigurationsverzeichnis /usr/local/docker/mysql/conf vorübergehend mit dem App-Ordner im Container (das Containerkonfigurationsverzeichnis kann nicht direkt verknüpft werden. Aus Gründen der Dateisynchronisierung ist das Containerkonfigurationsverzeichnis leer und der Container kann nicht gestartet werden). Später wird die Containerkonfigurationsdatei nach ./conf kopiert, um den Zweck des Kopierens der Containerdatei zu erreichen.

docker run -d -p 3306:3306 -v /usr/local/docker/mysql/conf:/app --name tempMysql -e MYSQL_ROOT_PASSWORD=123123 mysql

Geben Sie den MySQL-Container ein

docker exec -it tempMysql /bin/bash

Kopieren Sie alle Dateien im Verzeichnis etc/mysql in das App-Verzeichnis. Da zuvor eine lokale Synchronisierung durchgeführt wurde, können Sie die MySQL-Konfigurationsdatei im lokalen Ordner ./conf sehen.

cp -r /etc/mysql/* /app

Löschen eines Containers

Docker stoppt TempMysql

Docker RM TempMysql

Erstellen Sie einen neuen Container, um den lokalen MySQL-Ordner mit den MySQL-bezogenen Dateien im Container zu synchronisieren.

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d MySQL

Die oben genannten Docker-Mounts lokaler Verzeichnisse und Datenvolumencontainer-Operationen sind der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Docker: Zeigen Sie den Mount-Verzeichnisvorgang des Containers an
  • Implementierung der Einbindung eines freigegebenen NFS-Verzeichnisses in einen Docker-Container
  • Docker - Zusammenfassung von 3 Möglichkeiten zum Ändern von Container-Mount-Verzeichnissen
  • So mounten Sie das Host-Verzeichnis im Docker-Container
  • So mounten Sie das Containerverzeichnis mit Docker auf dem Host

<<:  Shell-Skript zur Überwachung des MySQL-Master-Slave-Status

>>:  56 praktische JavaScript-Toolfunktionen zur Verbesserung der Entwicklungseffizienz

Artikel empfehlen

Wie die MySQL Select-Anweisung ausgeführt wird

Wie wird die MySQL-Select-Anweisung ausgeführt? I...

Zusammenfassung der XHTML-Anwendung im Webdesign-Studium

<br />Im Allgemeinen ist die Dateiorganisati...

MySQL-Optimierungsstrategie (empfohlen)

Zusammenfassend: 1. Berücksichtigen Sie die Leist...

JavaScript implementiert Konstellationsabfragefunktion mit detailliertem Code

Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...

Detaillierte Erklärung zur Verwendung von Router-View-Komponenten in Vue

Wenn Sie ein Vue-Projekt entwickeln, müssen Sie h...

Eine kurze Diskussion über die Typen von node.js-Middleware

Inhaltsverzeichnis Überblick 1. Middleware auf An...

JS-Funktionsaufruf, Anwenden und Binden einer superdetaillierten Methode

Inhaltsverzeichnis JS-Funktionsaufruf, Apply- und...

Details zum Like-Operator in MySQL

1. Einleitung Beim Filtern unbekannter oder teilw...

Beispiel für Sterne für den CSS-Bewertungseffekt

Was? Welcher Sternenmantel? Schauen wir uns zur V...

Über die 4 Zusatzfunktionen von Vuex

Inhaltsverzeichnis 1. Zusatzfunktionen 2. Beispie...

Eine kurze Einführung in MySQL-Datenbankoptimierungstechniken

Eine ausgereifte Datenbankarchitektur ist nicht v...

Detailliertes Tutorial zur Installation von PHP und Nginx auf Centos7

Da die Anwendung von CentOS auf der Serverseite i...

Verwendung von Linux-Netzwerkkonfigurationstools

Dieser Artikel stellt RHEL8-Netzwerkdienste und N...