Docker auf WSL. Möchten Sie einen anwendbaren Ordner auf Windows10 mit WSL mounten?

Docker auf WSL. Möchten Sie einen anwendbaren Ordner auf Windows10 mit WSL mounten?

Ich verwende WSL unter Windows, während ich Docker verwende.

Ich nehme diese Lösung an

https://stackoverflow.com/questions/50540721/docker-toolbox-error-response-from-daemon-invalid-mode-root-docker

Also habe ich versucht, „mounted_folder“ mit der Datei „file_at_host“ hier per Docker auf WSL zu mounten. Wie …

docker run -it -v //C/Users/<username>/Desktop/mounted_folder://new_dir <image> bash 
docker run -it -v /C/Users/<username>/Desktop/mounted_folder:/new_dir <image> bash

Aber wie Sie im nächsten Bild sehen können, zeigt der Befehl ls keine Dateien an.

So wird ein Ordner im CONTAINER eingebunden

Andererseits habe ich versucht, dasselbe in der Eingabeaufforderung zu tun.

docker run -it -v C:\Users\<username>\Desktop\mounted_folder:/new_dir <image> bash

Dann konnte ich die Datei „file_at_host“ mit dem Befehl ls finden.

So wird ein Ordner im CONTAINER eingebunden

Wie konnte das passieren?

Und auf welchen Ordner bezieht sich Docker, wenn es einen Ordner mountet?

Kann ich diesen Ordner auf der Windows-Benutzeroberfläche finden?

Ebenso habe ich versucht, mit WSL einen Ordner per Docker zu mounten und habe im Container die Datei „something.ipynb“ erstellt.

docker run -p 8888:8888 -v /c/Users/<username>/Desktop/ds_python:/work --name my-lab <image>

Und ich konnte die Datei „something.ipynb“ nicht auf der Windows-Benutzeroberfläche finden, wo sie sich im entsprechenden Ordner „ds_python“ befinden sollte.

Aber ich habe festgestellt, dass die Datei „something.ipynb“ vorhanden ist, als ich versucht habe, „Desktop“ per Docker mit WSL zu mounten.

So wird ein Ordner im CONTAINER eingebunden

Wie im Bild oben wird die Datei „something.ipynb“ angezeigt, obwohl ich sie in der Windows-Benutzeroberfläche „C:\Benutzer\Desktop\ds_python“ nicht finden konnte.

Wie kann ich hier einen Durchbruch erzielen?

„C:\Users\Desktop“ und „/c/Users//Desktop/“ sind unterschiedlich?

Wie kann ich Letzteres dann unter Windows sehen?

Und außerdem: wie kann ich den entsprechenden Ordner unter Windows mit WSL per Docker mounten?

Antwort1

Wenn Sie WSL2 verwenden, werden die Windows-Laufwerke auf dem /mnt-Endpunkt angezeigt.

 ls -lah /mnt
total 12K
drwxr-xr-x 10 root   root   4.0K Nov 13 13:13 .
drwxr-xr-x 17 root   root   4.0K Dec 12 11:12 ..
drwxrwxrwx  1 sathya sathya  512 Dec  6 12:47 c
drwxrwxrwx  1 sathya sathya 4.0K Dec  2 10:31 d
drwxrwxrwx  1 sathya sathya 4.0K Dec  2 10:31 e
drwxrwxrwx  1 sathya sathya 4.0K Dec  2 10:31 f
drwxrwxrwx  1 sathya sathya  512 Dec  2 10:31 g
drwxrwxrwx  1 sathya sathya 4.0K Dec  2 10:31 h
drwxrwxrwx  2 root   root   4.0K Nov 13 13:13 i
drwxrwxrwt  2 root   root     40 Dec 12 11:12 wsl


Um Ihre Windows-Dateien zu mounten, verwenden Sie das gleiche Format wie oben beschrieben, d. h. geben Sie den vollständigen Pfad an, einschließlich des führenden /mntals Bind-Mount,

docker run -it -v /mnt/c:/host/c alpine sh

Damit wird Ihr Laufwerk C im Container unter /host/c gemountet.

ls -lah /host/c

drwxrwxrwx    1 1000     1001         512 Dec 15 07:42 .
drwxr-xr-x    3 root     root        4.0K Dec 15 10:35 ..
lrwxrwxrwx    1 1000     1001          12 Sep 29  2018 Documents and Settings -> /mnt/c/Users
dr-xr-xr-x    1 1000     1001         512 Dec  9 16:54 Program Files
dr-xr-xr-x    1 1000     1001         512 Nov 13 11:03 Program Files (x86)
drwxrwxrwx    1 1000     1001         512 Nov  7 13:26 ProgramData
dr-xr-xr-x    1 1000     1001         512 Oct  2 08:39 Users
dr-xr-xr-x    1 1000     1001         512 Dec 15 07:43 Windows

Antwort2

Erstens handelt es sich bei der Lösung von Stack Overflow, die ich beim Angeben des bereitgestellten Ordners übernommen habe, um alte Informationen und sie bezieht sich auf Docker Toolbox, nicht auf WSL.

Ich fand also heraus, dass es auf meine Situation nicht zutraf.

Zweitens sollte ich den gemounteten Ordner auf WSL wie folgt angeben ...

docker run -it -v /mnt/c/Users/'username'/desktop/mounted_folder:/new_dir <image> bash

Drittens, wenn ich den gemounteten Ordner wie folgt angebe:

/c/Users/'username'/desktop/mounted_folder

Ich kann den Ordner auf der GUI anhand des Pfads überprüfen, etwa:

\\wsl$\Ubuntu\c\Users\'username'\desktop\mounted_folder

Explorer-Ergebnisbild

Ich sollte eingeben \\wsl$\Ubuntu~, da die Distribution von WSL Ubuntu war. Ubuntu-20.04 ist jedoch installiert.

Ergebnis vonwsl --list -v

Screenshot des wsl --list -v-Ergebnisses

Wenn ich den gemounteten Ordner wie folgt angebe:

/mnt/c/Users/'username'/desktop/mounted_folder

Ich kann den Ordner auf der GUI anhand des Pfads überprüfen, etwa:

C:\Users\'username'\Desktop\mounted_folder

Wenn Sie im ersten Fall den gemounteten Ordner in der Befehlszeile unter Windows überprüfen möchten, sollten Sie PowerShell verwenden. Nicht die Eingabeaufforderung.

Eingabeaufforderungsfehler

verwandte Informationen