GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So mounten oder symbolisieren Sie eine einzelne Datei in einem Docker-Container

Docker-Volume und Bind-Mounts werden verwendet, um Verzeichnisse auf dem Host-Betriebssystem an Speicherorte im Dateisystem des Containers zu binden. Während sie normalerweise verwendet werden, um ganze Verzeichnisse einzuhängen, können Sie sie auch verwenden, um einzelne Dateien symbolisch zu verknüpfen.

Symlink zu Docker vom Host

Das Mounten ganzer Verzeichnisse funktioniert gut, wenn Sie eine ganze Liste von Konfigurationsdateien überschreiben, aber wenn Sie nur eine als Ziel haben möchten, müssen Sie eine einzelne Datei mounten. Dies ist auch nützlich, wenn Sie mehrere Mounts in demselben Verzeichnis haben möchten, aber von verschiedenen Orten. Es funktioniert ähnlich wie ein normaler Linux-Symlink, außer dass es über Docker gehandhabt wird und die Brücke zwischen Host- und Container-Dateisystem überquert.

Für normale Docker-Volume-Mounts müssen Sie in ein Zielverzeichnis mounten , innerhalb dessen das Volume verknüpft wird.

docker volume create nginx-config

docker run -d 
--name devtest 
--mount source=nginx-config,target=/etc/nginx 
nginx:latest

Bei Bind-Mounts kann die Quelle jedoch ein Verzeichnis oder eine Datei sein auf dem Host. Volume-Mounts unterstützen dies nicht, und obwohl Sie sie normalerweise verwenden möchten, müssen Sie die Bind-Mounts auf niedrigerer Ebene verwenden, wenn Sie einzelne Dateien mounten möchten.

Dazu können Sie den Container mit dem Flag --mount type=bind ausführen , die einzelne Dateien unterstützen, wenn Sie den Pfad angeben:

docker run -it 
--mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg 
nginx sh

Wenn Sie Docker-Volumes wirklich verwenden möchten, können Sie alternativ ein Volume nur mit der Datei erstellen, die Sie mounten möchten, es in einem temporären Verzeichnis im Container mounten und dann einen tatsächlichen Symlink innerhalb des Containers erstellen (im Docker-Build-Skript ), die mit der Datei auf das temporäre Verzeichnis verlinken würde. Das ist wahrscheinlich insgesamt eine schlechtere Lösung als ein Bind-Mount, aber es ermöglicht Ihnen, die Daten über die Docker-Volume-API zu speichern.


Docker
  1. So installieren Sie WordPress mit Docker

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. Datei aus Docker-Image extrahieren?

  4. Wie man ein Host-Verzeichnis in einen Docker-Container einbindet

  5. So führen Sie einen Befehl in einem laufenden Docker-Container aus

So verknüpfen Sie eine Datei unter Linux per Symlink

Was ist Docker? Wie funktioniert es?

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So richten Sie einen Apache Docker-Container ein

So führen Sie Docker-Container aus