当前位置: 首页 > 知识库问答 >
问题:

在Docker Desktop(Windows)中查找数据卷

裴良弼
2023-03-14

我现在正试图学习docker,但我对数据卷实际存在的位置感到困惑。

我使用Docker桌面的Windows。(Windows 10)

在文档中,他们说对对象运行docker检查会给你提供来源: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"
    }
]

有人能帮帮我吗?我只是想知道我的数据卷实际上存在于我的主机上吗?如果是这样,我怎样才能得到它的路径?

共有3个答案

梁丘波
2023-03-14

对于Windows10WSL2(Ubuntu20.04),DockerVersion20.10。2、构建2291f61

Docker工件可以在

DOCKER\u工件==\\wsl$\DOCKER桌面数据\version pack data\community\DOCKER

可以在中找到数据卷

DOCKER\u工件\卷\[VOLUME\u ID]\\数据

谷永贞
2023-03-14

您的卷目录是/var/lib/docker/volumes/blog\u postgres-data/\u data,并且/var/lib/docker通常安装在C:\Users\Public\Documents\Hyper-V\虚拟硬盘中。无论如何,您可以通过查看Docker设置来查看它。

有关如何在Windows上与Docker共享驱动器的信息,请参阅这些文档。

顺便说一句,Source是主机上的位置,Destination是以下输出中容器内的位置:

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

更新以回答评论中的问题:

我在这里的主要好奇心是共享图像等是伟大的,但我如何共享我的数据?

实际上,就是为此而设计的(管理Docker容器中的数据)。卷中的数据在主机FS上持久化,并与Docker容器/映像的生命周期隔离。您可以通过以下方式在卷中共享数据:

>

  • 挂载Docker卷以托管并重用它

    docker运行-v /path/on/host:/路径/内部/容器映像

    然后,所有数据都将保存在/path/on/host;您可以对其进行备份,将其复制到另一台计算机,然后使用相同的卷重新运行容器。

    创建并挂载数据容器。

    创建数据容器:docker Create-v/dbdata--name dbstore training/postgres/bin/true

    使用--volumes fromdocker Run-d--volumes from dbstore--name db1 training/postgres,基于此容器运行其他容器,然后由db1生成的所有数据将保留在容器dbstore的卷中。

    有关更多信息,您可以参考官方的Docker卷文档。

    简单地说,volumes只是主机上包含所有容器数据的目录,因此您可以使用以前使用的任何方法备份/共享数据。

    我可以像处理图像一样将卷推送到docker-hub吗?

    不,Docker映像是可以推送到Docker中心(又称“注册表”)的东西;但数据并非如此。您可以使用任何喜欢的方法备份/持久化/共享数据,但将数据推送到Docker注册表以共享数据没有任何意义。

    我可以备份等吗?

    是的,如上所述:-)

  • 董俊晖
    2023-03-14

    我在Windows WSL 2(Ubuntu 18.04),Docker v19.03。我在这个位置找到了我的Docker卷,在Windows文件资源管理器中键入:

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

    每个卷将有一个目录。

     类似资料:
    • 问题内容: 目前,我正在尝试学习docker,但对于 数据量实际存在的位置感到困惑。 我正在使用Windows的Docker Desktop。(Windows 10) 他们在文档中说,在对象上运行docker inspect将为您提供 源https://docs.docker.com/engine/tutorials/dockervolumes/#locating-a-volume 但是我没有看到

    • 问题内容: 我有一个ASP.NET MVC应用程序,我需要允许客户根据其环境配置MembershipProvider,但仍能够将该MembershipUser映射到我们数据库中的具体User模型。 将使我能够访问已登录用户的。我可以使用它来关联用户记录。我们的自定义SQL提供程序将仅返回User.Id,但AD则不同。在这种情况下,是。 如您所想,这些查找将非常频繁地发生(尽管缓存可以帮助减少数据库

    • 问题内容: 在Linux中,我可以使用命令找到mysql安装目录。但是我在Windows中找不到任何东西。我尝试过,它导致许多路径以及mysql bin的路径。 我想从Windows的命令行中找到mysql数据目录,以用于批处理程序。我也想从linux命令行中找到mysql数据目录。可能吗?或我们该怎么做? 就我而言,mysql数据目录位于安装文件夹中,即它可以安装在任何驱动器上。我想从命令行返回

    • 问题内容: 我有这种表,找到最大的标记 学生 外面应该是这样的 但我得到这种输出 我用SQL写这个 我该如何纠正sql? 问题答案: 在SQL Server中,您可以使用 尽管您也可以使用逻辑上等效的标准SQL

    • 我想在WebSphere中配置的webapp中使用JDBC Connetion。(就像这里的这个:如何在JavaEE中使用JDBC?) 我以前通过JPA使用过此数据源,但我们的客户希望使用本机SQL。。。不要问。 我找到了很多例子和教程(例如。http://www.wickcentral.com/java/dl/ds_resreferencesetts_Websphere.pdf,Webspher

    • 问题内容: 如何找到重复的行?如果last_name是重复字段,我想显示 任何数据库都可以,最好是oracle。 问题答案: 假设您的服务器具有GROUP_CONCAT,因为您没有提及正在使用的服务器: