Erstellen von Containern mit Host-Pfad
In vielen Fällen sind wir nicht an Datenspeicher gewöhnt, sondern verwenden stattdessen das native Verzeichnis direkt für die Datenpersistenz. In diesem Abschnitt werden wir das native Verzeichnis verwenden, um Container zu erstellen.
Ziel
Ihr Ziel ist es, einen Container zu erstellen, der Host-Pfad
verwendet, dann die lokalen Dateien in den Container zu kopieren und zu überprüfen, ob die Dateien in diesem Container die gleichen sind wie die in Host-Pfad
.
Ergebnisbeispiel
Hier ist ein Beispiel dessen, was Sie am Ende dieser Herausforderung erreichen sollten:
- Erstellen eines
nginx
-Verzeichnisses im Verzeichnis /tmp
.
labex:/tmp/ $ ls | grep nginx
nginx
- Starten des
nginx-host
-Containers auf der Grundlage des nginx
-Images, der das Verzeichnis /tmp/nginx
an das Verzeichnis /usr/share/nginx/html
im Container mountet.
labex:/tmp/ $ docker ps | grep nginx-host
6fc2d40e12df nginx "/docker-entrypoint.…" 44 seconds ago Up 43 seconds 80/tcp nginx-host
- Überprüfen der spezifischen Mountdetails mit dem Befehl
docker inspect
.
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/nginx",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
- Erstellen einer lokalen Datei namens
nginx.txt
mit dem Inhalt hello nginx
.
labex:/tmp/ $ pwd
/tmp
labex:/tmp/ $ cat nginx.txt
hello nginx
- Kopieren der
nginx.txt
-Datei in das Verzeichnis /usr/share/nginx/html
des nginx-host
-Containers.
labex:nginx/ $ docker exec nginx-host cat /usr/share/nginx/html/nginx.txt
hello nginx
- Überprüfen des Verzeichnisses
/tmp/nginx
auf dem lokalen Computer, um zu sehen, ob eine nginx.txt
-Datei vorhanden ist.
labex:nginx/ $ pwd
/tmp/nginx
labex:nginx/ $ cat nginx.txt
hello nginx
Anforderungen
Um diese Herausforderung zu bestehen, benötigen Sie Folgendes:
- Kenntnis des
Host-Pfads
, den Sie verwenden möchten.
- Kenntnisse über die Verwendung einiger relevanter Befehle innerhalb des Containers, um zu überprüfen, ob das Hostverzeichnis oder die Datei zugegriffen werden kann.
- Kenntnisse über das Starten des Containers mit Host-Pfad.
- Vertrautheit mit grundlegenden Linux-Befehlen wie
cd
, mkdir
, touch
usw.