Versuchen Sie, ein Verzeichnis in eine Datei einzubinden (oder umgekehrt)?

92

Ich habe einen Docker mit Version 17.06.0-ce. Wenn ich versuche, NGINX mit Docker mit Befehl zu installieren:

docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:latest

Es zeigt, dass

Docker: Fehlerantwort vom Daemon: OCI-Laufzeitfehler: Container_linux.go: 262: Start des Containerprozesses verursacht "process_linux.go: 339: Container-Init verursacht" rootfs_linux.go: 57: Mounten \\ / appdata / nginx / conf / nginx.conf \\ "to rootfs \\" / var / lib / docker / aufs / mnt / dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0 \\ "at \\" / var / lib / docker / aufs / mnt / dceaf809 \\ "verursacht \\" kein Verzeichnis \\ "\" ": Versuchen Sie, ein Verzeichnis in eine Datei einzubinden (oder umgekehrt)? Überprüfen Sie, ob der angegebene Hostpfad vorhanden ist und vom erwarteten Typ ist.

Wenn Sie die nginx.confDatei nicht mounten , ist alles in Ordnung. Wie kann ich die Konfigurationsdatei bereitstellen?

Steven Luo
quelle
Was ist die Ausgabe von ls -al .? Willst du sehen, wie dein Pwd aussieht?
Tri Nguyen
1
In meinem Fall hatte ich versehentlich ein Verzeichnis vom Host einer Datei im Container zugeordnet. Der Neustart des Containers funktionierte nicht mehr. Ich musste den Container ( docker rm …) entfernen und dann neu erstellen.
Slhck

Antworten:

26

Weil Docker $PWD/conf/nginx.confals Ordner und nicht als Datei erkennt . Überprüfen Sie, ob das $PWD/conf/Verzeichnis nginx.confein Verzeichnis enthält .

Test mit

> cat $PWD/conf/nginx.conf 
cat: nginx.conf/: Is a directory

Öffnen Sie andernfalls ein Docker-Problem .
Es funktioniert gut für mich mit der gleichen Konfiguration.

Mathieu Lescaudron
quelle
Als Linux-Benutzer der Mittelstufe bin ich neugierig, warum Linux dies als Ordner und nicht als Datei erkennt.
J. Scott Elblein
Weil es eigentlich ein Ordner ist. Wenn die Datei nicht vorhanden ist, erstellt Docker aufgrund des Volume-Arguments einen Ordner-v
Mathieu Lescaudron
OK, Linux erkennt es also nur dann als Ordner, wenn Docker es aufgrund des zuvor nicht vorhandenen Pfads erstellen musste. aber wenn das nginx.confschon vorher auf diesem Pfad existierte, würde Linux es als Datei erkennen, oder?
J. Scott Elblein
137

Dies sollte nicht mehr passieren (seit v2.2.0.0), siehe hier


Wenn Sie Docker für Windows verwenden , kann dieser Fehler auftreten, wenn Sie kürzlich Ihr Kennwort geändert haben.

Wie repariert man:

  1. Stellen Sie zunächst sicher, dass das Volume des defekten Containers gelöscht wird.
    docker rm -v <container_name>
    Aktualisierung: Die folgenden Schritte funktionieren möglicherweise, ohne dass zuvor Volumes gelöscht werden müssen.
  2. Öffnen Sie die Docker-Einstellungen
  3. Gehen Sie zur Registerkarte "Shared Drives"
  4. Klicken Sie unten im Fenster auf den Link "Anmeldeinformationen zurücksetzen ..."
  5. Geben Sie die Laufwerke, die Sie mit Docker verwenden möchten, erneut frei
  • Sie sollten aufgefordert werden, Ihren Benutzernamen / Ihr Passwort einzugeben
  1. Klicken Sie auf "Übernehmen"
  2. Gehen Sie zur Registerkarte "Zurücksetzen"
  3. Klicken Sie auf "Docker neu starten".
  4. Erstellen Sie Ihre Container / Volumes neu

Die Lösung geht an BaranOrnarli auf GitHub.

Jesse Webb
quelle
2
Vielen Dank! Es funktioniert für mich ab dem zweiten Schritt und vermeide den letzten.
Mateo Hermosilla
1
Ich konnte das Problem beheben, indem ich mit Schritt 2 begann und auch den letzten wegließ. Ich musste die Container / Volumes nicht zerstören, um sie erneut bereitzustellen.
Christian Engel
Ich bin mit @MateoHermosilla einverstanden, es muss nicht der Container gelöscht werden, nur "Anmeldeinformationen
zurücksetzen
Ich erhalte den gleichen Fehler, wenn ich versuche, proxy-deploy.sh während der Installation von sandbox-proxy (hadoop) auszuführen. Nach dieser Lösung. habe es nicht behoben.
Vaibhav
2
Das war das Problem für mich. Das Zurücksetzen des Passworts erfolgt alle paar Monate, daher vergesse ich immer wieder, die Anmeldeinformationen des freigegebenen Laufwerks in Docker zurückzusetzen.
Anders Tornblad
41

TL; DR : Entfernen Sie die dem Container zugeordneten Volumes.

Suchen Sie den Containernamen mit docker ps -aund entfernen Sie diesen Container mit:

docker rm -v <container_name>

Problem:

Der Fehler, mit dem Sie konfrontiert sind, kann auftreten, wenn Sie zuvor versucht haben, den docker runBefehl auszuführen, während die Datei nicht an der Stelle vorhanden war, an der sie sich im Hostverzeichnis befinden sollte.

In diesem Fall hätte der Docker-Dämon an seiner Stelle ein Verzeichnis innerhalb des Containers erstellt, das später nicht der richtigen Datei zugeordnet werden kann, wenn die richtigen Dateien im Host-Verzeichnis abgelegt werden und der Docker-Befehl erneut ausgeführt wird.

Lösung:

Entfernen Sie die Volumes, die dem Container zugeordnet sind. Wenn Sie sich keine Gedanken über andere Containervolumen machen, können Sie auch Folgendes verwenden:

docker volume rm $(docker volume ls -q)
Ayushya
quelle
Der Befehl in der ursprünglichen Frage listete nur Host-Volumes als verwendet auf. Der docker volumeBefehl / die Schnittstelle ist nur für anonyme und benannte Volumes vorgesehen, die nicht Teil der ursprünglichen Frage sind.
Programmierer
@programmerq Sehen Sie sich den Fehler an, der besagt, dass die Bereitstellung fehlgeschlagen ist, als versucht wurde, bei /var/lib/docker/aufs/mnt/dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0\\\"Mein Abzug zu mounten : Aufgrund eines vorherigen Laufs ist bereits ein Ordner vorhanden. Wenn Sie also versuchen, eine Datei diesem Ordner zuzuordnen, schlägt dies fehl.
Ayushya
Hier sind möglicherweise zwei Dinge schiefgegangen, entweder hat der Host falsche Dinge oder das bereits erstellte Volume hat falsche Dinge. Unter der Annahme, dass der Host korrekt ist, dachte ich, es wäre besser, Probleme mit dem vorhandenen Volume zu beheben.
Ayushya
1
Dies ist eine gültige Antwort, wenn der Container bereits einem Volume zugeordnet wurde und der Typ dieses Volumes im nächsten Lauf geändert wird. Das Entfernen des Volumens könnte also helfen!
Yan Foto
1
Das war hilfreich. Das Problem in meinem Fall war in der Tat, dass ich noch alte Container definiert hatte. Die Verwendung von Docker RM zum Zappen und anschließende Docker-Komposition hat ordnungsgemäß funktioniert.
Max Tardiveau
7

Antwort für Benutzer der Docker Toolbox

Es gab hier mindestens 3 Antworten, die das Problem berührten, es aber nicht richtig erklärten und keine vollständige Lösung gaben. Dies ist nur ein Problem bei der Ordnermontage .

Beschreibung des Problems:

Die Docker Toolbox umgeht die Hyper-V-Anforderungen von Docker, indem eine virtuelle Maschine erstellt wird (in VirtualBox, die im Lieferumfang enthalten ist). Docker wird in der VM installiert und ausgeführt. Damit Docker ordnungsgemäß funktioniert, muss es vom Host-Computer aus auf das zugreifen können. Was hier nicht der Fall ist.

Nachdem ich Docker Toolbox installiert hatte, wurde die VirtualBox-VM erstellt und nur als C:\Usersauf dem Computer bereitgestellt \c\Users\. Mein Projekt befand sich C:\projectsso nirgends auf dem gemounteten Volume. Wenn ich den Pfad an die VM gesendet habe, war er nicht vorhandenC:\projects nicht bereitgestellt wurde. Daher der obige Fehler.

Angenommen, ich hatte mein Projekt mit meiner ngnix-Konfiguration in C:/projects/project_name/

Es reparieren:

  1. Gehen Sie zu VirtualBox und klicken Sie mit der rechten Maustaste auf Standard (die VM von Docker)> Einstellungen> Freigegebene Ordner Geben Sie hier die Bildbeschreibung ein

  2. Klicken Sie auf das kleine Symbol mit dem Pluszeichen auf der rechten Seite und fügen Sie eine neue Freigabe hinzu. Ich habe die folgenden Einstellungen verwendet:

Geben Sie hier die Bildbeschreibung ein

  1. Das obige Karte C:\projectszu /projects( ROOT/projects) in der VM, was bedeutet , dass Sie jetzt einen beliebigen Pfad in Projekten wie diesem verweisen können:/projects/project_name - denn project_namevon C:\projects\project_namenun montiert.

Um relative Pfade zu verwenden, sollten Sie den Pfad benennen c/projects nichtprojects

  1. Starten Sie alles neu und es sollte jetzt richtig funktionieren. Ich habe die virtuelle Maschine in VirtualBox manuell gestoppt und die Docker Toolbox-CLI neu gestartet.

In meiner Docker-Datei verweise ich jetzt auf die nginx.conf wie folgt:

volumes:
    - /projects/project_name/docker_config/nginx/nginx.conf:/etc/nginx/conf.d/default.conf

Wo sich nginx.conf tatsächlich befindet C:\projects\project_name\docker_config\nginx\nginx.conf

Viorel
quelle
7

Die Erklärung von @Ayushya war der Grund, warum ich auf diese etwas verwirrende Fehlermeldung gestoßen bin, und die notwendige Reinigung kann einfach so durchgeführt werden:

$ docker container prune
$ docker volume prune
Andy Brown
quelle
6

Ich hatte das gleiche Problem. Ich habe Docker Desktop mit WSL in Windows 10 17.09 verwendet.

Ursache des Problems:

Das Problem ist, dass Docker für Windows erwartet, dass Sie Ihre Volume-Pfade in einem Format bereitstellen, das diesem entspricht:

/c/Users/username/app

ABER WSL verwendet stattdessen das Format:

/mnt/c/Users/username/app

Das ist verwirrend, weil ich beim Überprüfen der Datei in der Konsole sie gesehen habe und für mich alles korrekt war. Die Erwartungen von Docker für Windows bezüglich der Volume-Pfade waren mir nicht bekannt .

Lösung für das Problem:

Ich habe die benutzerdefinierten Einhängepunkte gebunden, um die Unterschiede zwischen Docker für Windows und WSL zu beheben:

sudo mount --bind /mnt/c /c

Wie in dieser erstaunlichen Anleitung vorgeschlagen: Einrichten von Docker für Windows und WSL, damit es einwandfrei funktioniert funktioniert einwandfrei und jetzt funktioniert alles einwandfrei.

Bevor ich anfing, WSL zu verwenden, benutzte ich Git Bash und ich hatte auch dieses Problem.

webcu
quelle
1
Weitere Details hier: github.com/10up/wp-local-docker/issues/…
nbeuchat
4

Ich verwende Docker ToolBox für Windows. Standardmäßig wird C Drive automatisch bereitgestellt. Um die Dateien bereitzustellen, stellen Sie sicher, dass sich Ihre Dateien und Ordner in C DRIVE befinden . .

Beispiel: C:\Users\%USERNAME%\Desktop

Abhishek DK
quelle
1
Mein gemounteter Ordner ist C: \ x-suite \; Ich habe mein C-Laufwerk geteilt, aber mein Problem immer noch nicht gelöst
19.
Verwenden Sie Docker ToolBox?
Abhishek DK
minikube + virtualBox + docker ToolBox, localkube war veraltet, welchen Treiber soll ich verwenden?
20.
Wenn Sie von Dockercompose aus mounten, verwenden Sie $ {pwd} / <Pfad>
Abhishek DK
1
Wenn Sie in Dockerfile arbeiten, dann verwenden Sie VOLUME / c / x-suite
Abhishek DK
2

Vielleicht findet das jemand nützlich. In meiner Compose-Datei wurde folgendes Volume bereitgestellt

./file:/dir/file

Da ./file nicht vorhanden war, wurde es in ABC gemountet (standardmäßig als Ordner).

In meinem Fall hatte ich einen Container daraus

docker commit ABC cool_image

Als ich später ./file erstellte und ausführte docker-compose up, hatte ich den Fehler:

[...] Versuchen Sie, ein Verzeichnis in eine Datei einzubinden (oder umgekehrt)? Überprüfen Sie, ob der angegebene Hostpfad vorhanden ist und vom erwarteten Typ ist.

Der Container, der von einem cool_imageerinnerten /dir/fileVerzeichnis aufgerufen wurde, war ein Verzeichnis und stand in Konflikt mit dem kürzlich erstellten und gemounteten ./file.

Die Lösung war:

touch ./file
docker run abc_image --name ABC -v ./file:/dir/file
# ... desired changes to ABC
docker commit ABC cool_image
Yuriy Pozniak
quelle
Vielen Dank, dies war auch mein Problem, da ich ein ziemlich komplexes Docker-Setup habe!
rmcsharry
1

In Windows 10 erhalte ich nur diesen Fehler, ohne etwas an meinem zu ändern docker-compose.yml Datei oder der Docker-Konfiguration im Allgemeinen vorgenommen werden.

In meinem Fall habe ich ein VPN mit einer Firewall-Richtlinie verwendet, die Port 445 blockiert.

Nach dem Trennen vom VPN verschwindet das Problem.

Ich empfehle daher, Ihre Firewall zu überprüfen und keinen Proxy oder VPN zu verwenden, wenn Sie Docker Desktop ausführen.

Überprüfen Sie Docker auf Windows - Firewall-Regeln für freigegebene LaufwerkeWeitere Informationen finden .

Ich hoffe das wird jemand anderem helfen.

Mohammed Réda OUASSINI
quelle
1

Könnten Sie bitte den absoluten / vollständigen Pfad anstelle von verwenden $PWD/conf/nginx.conf? Dann wird es funktionieren.

EX:docker run --name nginx-container5 --rm  -v /home/sree/html/nginx.conf:/etc/nginx/nginx.conf -d -p 90:80 nginx
b9ead15988a93bf8593c013b6c27294d38a2a40f4ac75b1c1ee362de4723765b

root@sree-VirtualBox:/home/sree/html# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
b9ead15988a9        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds        0.0.0.0:90->80/tcp   nginx-container5
e2b195a691a4        nginx               "/bin/bash"              16 minutes ago      Up 16 minutes       0.0.0.0:80->80/tcp   test-nginx
Srikanth Muppalaneni
quelle
Wenn Sie es mit doppelten Anführungszeichen umgehen: docker run -d --rm -v "$ PWD / nginx.conf: /etc/nginx/nginx.conf" nginx sollte es keinen Unterschied machen, da die Shell es vor dem Übergeben übersetzt Docker laufen und eigentlich macht es keinen Unterschied, zumindest für mich
Manumie
1

Ich habe das gleiche Problem mit Docker über WSL1 unter Windows 10 mit dieser Befehlszeile festgestellt:

echo $PWD
/mnt/d/nginx

docker run --name nginx -d \
  -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

Ich habe das Problem behoben, indem ich den Pfad für die Datei auf dem Hostsystem in einen absoluten Pfad im UNIX-Stil geändert habe:

docker run --name nginx -d \
  -v /d/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

oder Verwenden eines absoluten Pfads im Windows-Stil mit /anstelle von \Pfadtrennzeichen:

docker run --name nginx -d \
  -v D:/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx
bwibo
quelle
Haben Sie Leistungsunterschiede bei der Verwendung des Windows-Stilpfads im Vergleich zum Unix-Stilpfad festgestellt?
J. Scott Elblein
Ich kann es nicht sagen. Ich verwende Docker für Windows nur zum Testen / Entwickeln und habe die Leistung nie überwacht.
Bwibo
0

Durch das Aktualisieren von Virtual Box auf 6.0.10 wurde dieses Problem für Docker Toolbox behoben

https://github.com/docker/toolbox/issues/844

Ich hatte diese Art von Fehler:


mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ touch resolv.conf

mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv.conf ubuntu /bin/bash
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Users/mlepisto/G/Projects/resolv.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged/etc/resolv.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

# mounting to some other file name inside the container did work just fine
mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects/
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv2.conf ubuntu /bin/bash
root@a5020b4d6cc2:/# exit
exit

Nach dem Update von VitualBox haben alle Befehle einwandfrei funktioniert 🎉

Mikael Lepistö
quelle
0

Hatte den gleichen Kopfkratzer, weil ich die Datei nicht lokal hatte, so dass sie als Ordner erstellt wurde.

mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile
mimas@Anttis-MBP:~/random/dockerize/tube$ docker run --rm -v $(pwd)/logs.txt:/usr/app/logs.txt devopsdockeruh/first_volume_exercise
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/Users/mimas/random/dockerize/tube/logs.txt\\\" to rootfs \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged\\\" at \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged/usr/app/logs.txt\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile  logs.txt/
t0rjantai
quelle
0

unbekannt: Versuchen Sie, ein Verzeichnis in eine Datei einzubinden (oder umgekehrt)? Überprüfen Sie, ob der angegebene Hostpfad vorhanden ist und vom erwarteten Typ ist

Ich hatte einen ähnlichen Fehler auf Niginx in der Mac-Umgebung. Docker hat die Datei default.conf nicht richtig erkannt. Nach dem Ändern des relativen Pfads in den absoluten Pfad wurde der Fehler behoben.

      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
simpleDrinker
quelle
0

Für mich hat das nicht funktioniert:

volumes:
  - ./:/var/www/html
  - ./nginx.conf:/etc/nginx/conf.d/site.conf

Aber das funktioniert gut (offensichtlich habe ich meine Konfigurationsdatei auch in ein neues Verzeichnis verschoben:

volumes:
  - ./:/var/www/html
  - ./nginx/nginx.conf:/etc/nginx/conf.d/site.conf
Jon Winstanley
quelle
0

Ich werde meinen Fall hier teilen, da dies in Zukunft viel Zeit für jemand anderen sparen kann.

Ich hatte ein perfekt funktionierendes Docker-Compose auf meinen Macos, bis ich anfing, Docker-in-Docker in Gitlab CI zu verwenden. Ich erhielt nur die Berechtigung, als Master in einem Repository zu arbeiten, und das Gitlab CI wird von jemand anderem selbst gehostet und eingerichtet, und es wurden keine weiteren Informationen über die Einrichtung usw. geteilt.

Folgendes hat das Problem verursacht:

volumes:
  - ./.docker/nginx/wordpress/wordpress.conf:/etc/nginx/conf.d/default.conf

Erst als ich bemerkte, dass dies unter Windows ausgeführt werden könnte (Stunden am Kopf kratzen), habe ich versucht, die wodpress.conf in default.conf umzubenennen und nur die Verzeichnispfadnamen festzulegen:

volumes:
  - ./.docker/nginx/wordpress:/etc/nginx/conf.d

Dies löste das Problem!

Punkbit
quelle
0

Ich hatte dieses Problem unter Windows 7, weil sich meine Docker-Datei auf einem anderen Laufwerk befand.

Folgendes habe ich getan, um das Problem zu beheben:

  1. Öffnen Sie den VirtualBox Manager
  2. Wählen Sie den "Standard" -Container und bearbeiten Sie die Einstellungen.
  3. Wählen Sie Freigegebene Ordner und klicken Sie auf das Symbol, um einen neuen freigegebenen Ordner hinzuzufügen
  4. Ordnerpfad: x: \
  5. Ordnername: / x
  6. Aktivieren Sie Auto-Mount und Make Permanent
  7. Starten Sie die virtuelle Maschine neu

An dieser Stelle docker-compose upsollte funktionieren.

pbarney
quelle
0

Ich habe den gleichen Fehler unter Windows 10 nach einem Update von Docker erhalten: 2.3.0.2 (45183).

... verursacht \\\"not a directory\\\"\"":unbekannt: Versuchen Sie, ein Verzeichnis in eine Datei einzubinden (oder umgekehrt)? Überprüfen Sie, ob der angegebene Hostpfad vorhanden ist und vom erwarteten Typ ist

Ich habe solche absoluten Pfade benutzt //C/workspace/nginx/nginx.confund alles hat wie ein Zauber funktioniert.
Das Update hat mein Docker-Compose kaputt gemacht und ich musste die Pfade /C/workspace/nginx/nginx.confmit einem einzigen /für den Root ändern .

ymoreau
quelle
0

Beachten Sie, dass diese Situation auch auftritt, wenn Sie versuchen, ein Volume vom Host bereitzustellen, das nicht zum Abschnitt Ressourcen> Dateifreigabe in den Docker-Einstellungen hinzugefügt wurde.

Geben Sie hier die Bildbeschreibung ein

Durch Hinzufügen des Stammpfads als Dateifreigaberessource kann Docker nun auf die Ressource zugreifen, um sie in den Container einzubinden. Beachten Sie, dass Sie möglicherweise den Inhalt Ihres Docker-Containers löschen müssen, um zu versuchen, das Volume erneut bereitzustellen.

Wenn sich Ihre Anwendung beispielsweise unter befindet /mysites/myapp, möchten Sie sie /mysitesals Speicherort für die Dateifreigaberessource hinzufügen .

Mark Shust an der M.academy
quelle
0

Ich hatte das gleiche Problem: Docker-Compose erstellte ein Verzeichnis anstelle einer Datei und stürzte dann auf halbem Weg ab.

Was ich getan habe:

  1. Führen Sie den Container ohne Zuordnung aus.

  2. Kopieren Sie die .confDatei an den Hostspeicherort:

    docker cp containername:/etc/nginx/nginx.conf ./nginx.conf

  3. Entferne den Behälter ( docker-compose down).

  4. Setzen Sie das Mapping zurück.

  5. Montieren Sie den Behälter wieder.

Docker Compose findet die .confDatei und ordnet sie zu, anstatt zu versuchen , ein Verzeichnis zu erstellen .

Chtiwi Malek
quelle
-2

Ich habe das Mount-Problem gelöst. Ich verwende eine Win 7-Umgebung und das gleiche Problem ist mir passiert.

Versuchen Sie, ein Verzeichnis in eine Datei einzubinden?

Der Container hat ein Standard-Synchronisierungsverzeichnis unter C:\Users\, daher habe ich mein Projekt verschoben und das Projekt C:\Users\neu erstellt. Jetzt funktioniert es.

dan mu
quelle