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:\Users
auf dem Computer bereitgestellt \c\Users\
. Mein Projekt befand sich C:\projects
so 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:\projects
zu /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_name
von C:\projects\project_name
nun 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?