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 realisieren Sie die vertikale Anordnung von Text mit CSS3

In einem aktuellen Projekt wollte ich Text vertik...

So verwenden Sie nginx, um eine angegebene Schnittstelle (URL) zu blockieren

1. Einleitung Manchmal müssen Sie eine Servicesch...

Was ich beim Aufbau meines eigenen Blogs gelernt habe

<br />In einem Jahr Bloggen habe ich persönl...

Multiservice-Image-Packaging-Vorgang von Dockerfile unter Aufsicht

Schreiben einer Docker-Datei Konfigurieren Sie di...

So legen Sie den Produktionsumgebungsmodus process.env.NODE_ENV fest

Bevor ich anfange, möchte ich betonen, dass proce...

HTML realisiert Hotel-Screening-Funktion über Formular

<!doctype html> <html xmlns="http:/...

SQL-Implementierung von LeetCode (182. Doppelte Postfächer)

[LeetCode] 182.Doppelte E-Mails Schreiben Sie ein...

Eine kurze Diskussion über vier Lösungen für Vue Single Page SEO

Inhaltsverzeichnis 1.Bereitstellung der serversei...

Beispiel zum Verlassen der Schleife in Array.forEach in js

Inhaltsverzeichnis forEach() Methode So springen ...

Eine schnelle Lösung für das Problem der PC- und Mobilanpassung

Beim Erstellen einer Webseite müssen wir normaler...