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

So installieren Sie PHP7.4 und Nginx auf Centos

Vorbereiten 1. Laden Sie das erforderliche Instal...

Detaillierte Schritte zur Entwicklung von WeChat-Miniprogrammen mit Typescript

Auf die Vorteile von Typescript müssen wir nicht ...

Vergleich zwischen Node.js und Deno

Inhaltsverzeichnis Vorwort Was ist Deno? Vergleic...

Detaillierte Erläuterung der praktischen Anwendung der Centos7 ESXi6.7-Vorlage

1. Erstellen Sie ein Centos7.6-System und optimie...

Beispielcode zum Zeichnen von Doppelpfeilen in gängigen CSS-Stilen

1. Mehrere Aufrufe eines einzelnen Pfeils Sobald ...

Tutorial zur manuellen Installation von MySQL 8.0.13

In diesem Artikel finden Sie das Tutorial zur man...

So verwenden Sie Docker zum Erstellen eines Redis-Master-Slaves

1. Erstellen Sie eine Docker-Umgebung 1. Erstelle...

js, um eine einfache Produkt-Screening-Funktion zu erreichen

In diesem Artikelbeispiel wird der spezifische JS...

Der Unterschied zwischen Datenzeit und Zeitstempel in MySQL

In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...

CocosCreator Erste Schritte Tutorial: Netzwerkkommunikation

Übersicht zur Netzwerkkommunikation Bei der Entwi...

Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung

Inhaltsverzeichnis Vorwort: 1. Einführung in die ...