So stellen Sie eine sanfte Verbindung zum Hostverzeichnis in einem Docker-Container her

PHPz
Freigeben: 2023-04-26 14:10:47
Original
2968 Leute haben es durchsucht

Docker wird als Technologie zur schnellen Bereitstellung und Verwaltung von Anwendungen häufig in Entwicklungs- und Produktionsumgebungen eingesetzt. Bei der Verwendung von Docker müssen wir häufig das Hostverzeichnis dem Inneren des Docker-Containers zuordnen, damit der Container Dateien auf dem Host lesen und schreiben kann.

In einigen Fällen müssen wir jedoch ein Verzeichnis oder eine Datei im Docker-Container per Softconnect mit einem Verzeichnis oder einer Datei auf dem Host-Computer verbinden. Dies ist in praktischen Anwendungen sehr nützlich, z. B. bei der Verwendung von Soft-Verbindungen zur gemeinsamen Nutzung einer Codebasis zwischen dem Host und dem Container oder bei der Ermöglichung des Zugriffs des Containers auf ein bestimmtes Hardwaregerät auf dem Host.

In diesem Artikel erfahren Sie, wie Sie eine weiche Verbindung zum Hostverzeichnis im Docker-Container implementieren.

  1. Vorbereitung

Um eine Soft-Verbindung zum Host-Verzeichnis im Docker-Container zu implementieren, müssen wir zunächst das Verzeichnis auf dem Docker-Host für das Innere des Docker-Containers freigeben. Hier nehmen wir als Beispiel das Verzeichnis/datades gemeinsam genutzten Hosts./data目录为例。

首先,在宿主机上创建一个目录/data,并且在目录中创建一个文件test.txt,然后在文件中写入一些测试内容。接下来,我们需要在启动Docker容器时将宿主机的/data目录映射到Docker容器内部的一个目录中,比如/container_data

假设我们已经通过docker run命令启动了一个名为test的Docker容器,并将宿主机的/data目录映射到了容器内部的/container_data目录中。现在我们可以在Docker容器内部查看/container_data目录来验证共享是否已经正确设置。

  1. 在Docker容器内部创建软连接

在完成共享设置之后,我们可以在Docker容器内部创建一个软连接,将容器内的一个目录或文件链接到宿主机上的一个目录或文件。这里我们以将容器内的/container_data/test.txt软连接到宿主机上的/data/test.txt为例。

在Docker容器内运行以下命令:

ln -s /container_data/test.txt /data/test.txt
Nach dem Login kopieren

这条命令将会在容器内创建一个软连接/data/test.txt,并将其指向宿主机上的/data/test.txt。我们可以在Docker容器内部验证软连接是否已经正确创建:

ls -l /data/test.txt
Nach dem Login kopieren

这条命令将会输出以下内容:

lrwxrwxrwx 1 root root 24 Mar 17 10:00 /data/test.txt -> /container_data/test.txt
Nach dem Login kopieren

可以看到,输出结果中的->符号表示/data/test.txt软连接到了/container_data/test.txt

  1. 测试软连接是否正常工作

在确认软连接已经在Docker容器内部正确创建之后,我们可以测试软链接是否已经正确工作。可以通过在Docker容器内读写/container_data/test.txt和在宿主机上读写/data/test.txt来测试。

首先,在Docker容器内部运行以下命令,将test.txt文件中的内容重定向到/container_data/test.txt

echo "test message in container" > /container_data/test.txt
Nach dem Login kopieren

然后,在宿主机上,我们可以查看/data/test.txt文件的内容,以验证软链接是否成功工作:

cat /data/test.txt
Nach dem Login kopieren

可以看到,test.txt中的内容与在Docker容器内设置的内容相同。

接着,在宿主机上向/data/test.txt文件追加一些新的内容:

echo "test message in host" >> /data/test.txt
Nach dem Login kopieren

然后,我们再次在Docker容器内部查看/container_data/test.txt文件的内容:

cat /container_data/test.txt
Nach dem Login kopieren

可以看到,新加的内容已经被正确地追加到了test.txt

Erstellen Sie zunächst ein Verzeichnis /dataauf dem Hostcomputer, erstellen Sie eine Datei test.txtim Verzeichnis und schreiben Sie dann einige Testinhalte in die Datei. Als Nächstes müssen wir beim Starten des Docker-Containers das Verzeichnis /datades Hosts einem Verzeichnis innerhalb des Docker-Containers zuordnen, beispielsweise /container_data.
  1. Angenommen, wir haben einen Docker-Container mit dem Namentestüber den Befehldocker rungestartet und das Verzeichnis/datades Hosts dem Verzeichniszugeordnet /container_dataVerzeichnis innerhalb des Containers. Jetzt können wir das Verzeichnis/container_dataim Docker-Container überprüfen, um sicherzustellen, dass die Freigabe korrekt eingerichtet wurde.
    1. Erstellen Sie eine Soft-Verbindung im Docker-Container

      Nach Abschluss der Freigabeeinstellungen können wir eine Soft-Verbindung im Docker-Container erstellen, um ein Verzeichnis oder eine Datei im Container mit dem Host zu verknüpfen Verzeichnis oder Datei. Hier nehmen wir als Beispiel eine weiche Verbindung von /container_data/test.txtim Container zu /data/test.txtauf dem Host. Führen Sie den folgenden Befehl im Docker-Container aus: rrreeeDieser Befehl erstellt eine Soft-Verbindung /data/test.txtim Container und verweist auf auf dem Host-Computer /data /test.txt. Wir können überprüfen, ob die Soft-Verbindung korrekt im Docker-Container erstellt wurde: rrreeeDieser Befehl gibt den folgenden Inhalt aus: rrreeeWie Sie sehen können, ist das Symbol ->in der Ausgabe enthalten Das Ergebnis bedeutet, dass /data/test.txtsanft mit /container_data/test.txtverbunden ist.
        Testen Sie, ob der Softlink ordnungsgemäß funktioniertNachdem wir bestätigt haben, dass der Softlink korrekt im Docker-Container erstellt wurde, können wir testen, ob der Softlink ordnungsgemäß funktioniert. Es kann getestet werden, indem /container_data/test.txtim Docker-Container gelesen und geschrieben wird und /data/test.txtauf dem Host-Computer gelesen und geschrieben wird. Führen Sie zunächst den folgenden Befehl im Docker-Container aus, um den Inhalt der Datei test.txtnach /container_data/test.txtumzuleiten: rrreeeDann in Auf dem Host-Computer können wir den Inhalt der Datei /data/test.txtanzeigen, um zu überprüfen, ob der Softlink erfolgreich funktioniert: rrreeeDas können Sie in test.txt Der Inhalt von ist derselbe wie der im Docker-Container. Als nächstes hängen Sie einige neue Inhalte an die Datei /data/test.txtauf dem Host an: rrreeeDann sehen wir uns /container_data/test.txt erneut im Docker-Container an Dateiinhalt: rrreeeSie können sehen, dass der neu hinzugefügte Inhalt korrekt an die Datei test.txtangehängt wurde. ZusammenfassungDurch die oben genannten Schritte haben wir erfolgreich einen Softlink im Docker-Container erstellt, der eine Datei im Container mit einer Datei auf dem Host verknüpft. In praktischen Anwendungen ermöglichen uns Softlinks die einfache gemeinsame Nutzung von Dateien oder Verzeichnissen und verbessern so die Effizienz der Entwicklung und Verwaltung. Natürlich müssen wir bei der Verwendung von Softlinks auf die Lese- und Schreibberechtigungen der Datei oder des Verzeichnisses achten, um sicherzustellen, dass die Softlinks ordnungsgemäß funktionieren.

    Das obige ist der detaillierte Inhalt vonSo stellen Sie eine sanfte Verbindung zum Hostverzeichnis in einem Docker-Container her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!