当前位置: 首页 > 面试题库 >

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

林礼骞
2023-03-14
问题内容

目前,我正在尝试学习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"
    }
]

谁能帮我?我只想知道我的数据量实际存在于何处?如果是这样,我该怎么走呢?


问题答案:

你卷目录 /var/lib/docker/volumes/blog_postgres-data/_data,
and /var/lib/docker 通常安装在
C:\Users\Public\Documents\Hyper-V\Virtual hard disks. 论如何,您可以
通过查看Docker设置来进行检查。

您可以参考 these docs for info on how to share drives with Docker on
Windows.

BTW, Source 是主机Destination上的位置
,也是以下输出中容器内部的位置:

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

===========================================================================

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

My main curiosity here is that sharing images etc is great but how do I
share my data?

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

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

docker run -v /path/on/host:/path/inside/container image

然后,所有数据将保留在其中 /path/on/host;您可以备份它,将其复制到另一台计算机上,然后以相同的体积重新运行容器。

  • Create and mount a data container.

Create a data container: docker create -v /dbdata --name dbstore training/postgres /bin/true

Run other containers based on this container using --volumes-from: docker run -d --volumes-from dbstore --name db1 training/postgres, then all data
generated by db1 will persist in the volume of container dbstore.

有关更多信息,您可以参考 official Docker volumes
docs.

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

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

否。您可以将Docker 映像推送到Docker集线器(又称
“注册表”)。但是数据不是。您可以使用
任何喜欢的方法来备份/持久保存/共享数据,但是将数据推送到Docker注册表以共享它没有
任何意义。

我可以进行备份等吗?

是的,如上所述:-)



 类似资料:
  • 我现在正试图学习docker,但我对数据卷实际存在的位置感到困惑。 我使用Docker桌面的Windows。(Windows 10) 在文档中,他们说对对象运行docker检查会给你提供来源: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,因为您没有提及正在使用的服务器: