我正在学习docker,我对数据卷实际存在的地方感到困惑。

我正在使用Windows的Docker Desktop。(Windows 10)

在文档中,他们说在对象上运行docker inspect会给你源代码:https://docs.docker.com/engine/tutorials/dockervolumes/#locating-a-volume

$ docker inspect web

"Mounts": [
    {
        "Name": "fac362...80535",
        "Source": "/var/lib/docker/volumes/fac362...80535/_data",
        "Destination": "/webapp",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
]

然而,我没有看到这一点,我得到了以下:

$ docker inspect blog_postgres-data
[
    {
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/blog_postgres-data/_data",
        "Name": "blog_postgres-data",
        "Options": {},
        "Scope": "local"
    }
]

有人能帮帮我吗?我只想知道我的数据量在哪里是在主机上吗?如果是这样,我怎么能得到它的路径?


当前回答

对于Windows 10 + WSL 2 (Ubuntu 20.04), Docker版本20.10.2,build 2291f61

Docker工件可以在

DOCKER_ARTIFACTS == \\wsl$\docker-desktop-data\version-pack-data\community\docker

数据卷可以在

\ [VOLUME_ID] \ _data DOCKER_ARTIFACTS \卷

其他回答

对于Windows 10 + WSL 2 (Ubuntu 20.04), Docker版本20.10.2,build 2291f61

Docker工件可以在

DOCKER_ARTIFACTS == \\wsl$\docker-desktop-data\version-pack-data\community\docker

数据卷可以在

\ [VOLUME_ID] \ _data DOCKER_ARTIFACTS \卷

在我的例子中,我在wsl2上安装了docker-desktop, windows 10 home。我找到了我的图像文件

\\wsl$\docker-desktop-data\version-pack-data\community\docker\overlay2
\\wsl$\docker-desktop-data\version-pack-data\community\docker

容器,图像,卷,信息都在那里。

所有的图像文件都存储在那里,并被分成几个具有长字符串名称的文件夹。当我查看每个文件夹,我可以在“diff”文件夹中找到所有真实的图像文件。

虽然终端显示路径为“var/lib/docker”,但该文件夹不存在,实际文件也不存储在那里。我认为没有错误,“var/lib/docker”只是链接或映射到真正的文件夹,就像这样

我发现我的WSL 2 Docker安装(Ubuntu 20.04)在Windows 10中使用这个位置:

C:\Users\Username\AppData\Local\Docker\wsl\data\ext4.vhdx

Username是你的用户名。

如果你觉得输入\\wsl$或记住它很痛苦,在Windows 10发行版2004及以后版本中有一个更友好的gui方法。使用WSL 2,您可以通过文件资源管理器中的新Linux图标安全地导航到所有特殊的WSL共享:

从那里你可以钻到(例如)\docker-desktop-data\data\docker\volumes,就像在其他答案中提到的那样。

有关更多细节,请参考Microsoft的官方WSL文件系统文档,其中提到了这些访问方法。对于技术好奇的人来说,微软的深度潜水视频应该能回答很多问题。

在启用了WSL2的Windows 11 Docker Desktop v4.15.0中,导航到volumes文件夹的路径是\\wsl.localhost\ Docker - Desktop -data\data\ Docker \volumes