我现在正试图学习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"
}
]
有人能帮帮我吗?我只是想知道我的数据卷实际上存在于我的主机上吗?如果是这样,我怎样才能得到它的路径?
对于Windows10WSL2(Ubuntu20.04),DockerVersion20.10。2、构建2291f61
Docker工件可以在
DOCKER\u工件==\\wsl$\DOCKER桌面数据\version pack data\community\DOCKER
可以在中找到数据卷
DOCKER\u工件\卷\[VOLUME\u ID]\\数据
您的卷目录是/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 from
:docker Run-d--volumes from dbstore--name db1 training/postgres
,基于此容器运行其他容器,然后由db1
生成的所有数据将保留在容器dbstore
的卷中。
有关更多信息,您可以参考官方的Docker卷文档。
简单地说,
volumes
只是主机上包含所有容器数据的目录,因此您可以使用以前使用的任何方法备份/共享数据。
我可以像处理图像一样将卷推送到docker-hub吗?
不,Docker映像是可以推送到Docker中心(又称“注册表”)的东西;但数据并非如此。您可以使用任何喜欢的方法备份/持久化/共享数据,但将数据推送到Docker注册表以共享数据没有任何意义。
我可以备份等吗?
是的,如上所述:-)
我在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,因为您没有提及正在使用的服务器: