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:
Gehen Sie zu VirtualBox und klicken Sie mit der rechten Maustaste auf Standard (die VM von Docker)> Einstellungen> Freigegebene Ordner

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:

- 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
- 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
ls -al .? Willst du sehen, wie dein Pwd aussieht?