簡體   English   中英

WSL2 掛載 VHDX 虛擬磁盤問題與 Windows docker 卷

[英]WSL2 mount VHDX virtual disk issue with Windows docker Volumes

在 Windows 10 Insider Preview (prerelease.201207-1443) 上,我已經使用 WSL2 成功安裝了一個 vhdx 文件。

PS C:\Users> wmic diskdrive list brief
Caption                     DeviceID            Model                       Partitions  Size
..
Microsoft virtuális lemez   \\.\PHYSICALDRIVE2  Microsoft virtuális lemez   1           5362882560

PS C:\Users> wsl --mount \\.\PHYSICALDRIVE2 --bare

在 Ubuntu 20.20 內部看起來不錯,我可以安裝並格式化(ext4)虛擬磁盤。

/dev/sde1       4.9G   20M  4.6G   1% /mnt/docker/vol/pg_disk_1

我可以毫無問題地使用它,讀,寫。 性能很好。

問題:當我為應用程序數據創建 docker 容器時,我想使用此磁盤,它在容器內不可見。

docker run -d -it --name devtest --mount type=bind,source=/mnt/docker/vol/pg_disk_1/nginx,target=/app nginx:latest

docker 檢查顯示已安裝卷綁定:

        "Mounts": [
        {
            "Type": "bind",
            "Source": "/mnt/docker/vol/pg_disk_1/nginx",
            "Destination": "/app",
            "Mode": "",
            "RW": true,
            "Propagation": "rprivate"
        }
    ],

當我在主機上創建文件時,例如。 example_host.html

User@Pince:/mnt/docker/vol/pg_disk_1/nginx$ ls -l
total 0
-rw-r--r-- 1 r858 r858 0 Jan  3 11:30 example_host.html

當我檢查容器內部時不可見

root@078e4d7007a8:/app# ls -la
total 8
drwxr-xr-x 2 root root 4096 Jan  3 10:32 .
drwxr-xr-x 1 root root 4096 Jan  3 10:15 ..
root@078e4d7007a8:/app# pwd
/app

如果我在容器內創建一個文件,它將在重新創建容器時保持不變,但不會在 Linux 安裝的磁盤中。 我在這里找到了它:

\\wsl$\docker-desktop\mnt\host\wsl\docker-desktop-bind-mounts\Ubuntu-20.04\...

問題:這是正常的,我錯過了一些東西,或者在這個開發階段還沒有准備好。 你知道有人知道如何使用 vhdx 安裝的磁盤來獲取 Windows 上的 docker 應用程序數據嗎?

問題是/dev/sde1是由 wsl 創建和管理的,因此 Windows 程序(如 Docker Desktop)不能(很容易?)訪問。

一種解決方法是將 \\.\PHYSICALDRIVE2 掛載為驅動器D:並掛載為:

docker run -v 'D:\data:/data' ...

這樣,您可以在 Windows 和 wsl 上訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM