Bra*_*rad 44 docker docker-for-windows docker-desktop
我正在尝试学习docker,我对数据量实际存在的位置感到困惑.
我正在使用Docker Desktop for Windows.(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": ""
}
]
Run Code Online (Sandbox Code Playgroud)
但我没有看到这个,我得到以下内容:
$ 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"
}
]
Run Code Online (Sandbox Code Playgroud)
谁能帮我?我只是想知道我的数据量实际存在于我的主机上的位置?如果是这样,我怎么能找到它的路径?
mpc*_*-DT 232
我使用的是 Windows + WSL 2 (Ubuntu 18.04),Docker v19.03。我在这个位置找到了我的 Docker 卷,在 Windows 文件资源管理器中输入:
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
Run Code Online (Sandbox Code Playgroud)
每个卷将有一个目录。
shi*_*zhz 38
你的卷目录是/var/lib/docker/volumes/blog_postgres-data/_data,并且/var/lib/docker通常安装在C:\Users\Public\Documents\Hyper-V\Virtual hard disks,无论如何你可以通过查看docker设置来检查它.
您可以参考此文档,了解如何在Windows上与docker共享驱动器.
BTW,Source是主机Destination上的位置,是以下输出中容器内的位置:
"Mounts": [
{
"Name": "fac362...80535",
"Source": "/var/lib/docker/volumes/fac362...80535/_data",
"Destination": "/webapp",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
Run Code Online (Sandbox Code Playgroud)
================================================== =========================
更新以回答评论中的问题:
我主要的好奇心是共享图像等很棒,但我如何分享我的数据呢?
实际上volume是为此目的而设计的(管理Docker容器中的数据),卷中的数据保存在主机FS上并与docker container/image的生命周期隔离.您可以通过以下方式与数据共享数据:
挂载docker卷以托管并重用它
docker run -v /path/on/host:/path/inside/container image
然后/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图像是您提供的东西,但数据不是.您可以使用您喜欢的任何方法备份/保留/共享您的数据,但将数据推送到docker注册表以共享它没有任何意义.
我可以备份等吗?
是的,如上所述:-)
cra*_*eem 28
为了 Windows 10 + WSL 2 (Ubuntu 20.04), Docker version 20.10.2, build 2291f61
Docker 工件可以在
DOCKER_ARTIFACTS == \\wsl$\docker-desktop-data\version-pack-data\community\docker
数据量可以在
DOCKER_ARTIFACTS\volumes\[VOLUME_ID]\_data
小智 20
在 windows 主机上运行基于 linux 的容器时,实际卷将存储在 linux VM 中,并且在主机的 fs 上不可用,否则 windows 上运行的 windows => C:\ProgramData\Docker\volumes\
也docker inspect <container_id>将列出容器配置,下支架部分看到关于持久层的更多细节。
更新:不适用于在WSL 上运行的 Docker 。
小智 11
如果您启用了 wsl2,您可以在文件资源管理器中找到它 \\wsl$\docker-desktop\mnt\host\wsl\docker-desktop-data\data\docker
小智 9
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
Run Code Online (Sandbox Code Playgroud)
也为我工作(Windows 10 家庭版),很棒的东西。
在启用 WSL2 的情况Windows 11下Docker Desktop v4.15.0,导航到卷文件夹的路径是\\wsl.localhost\docker-desktop-data\data\docker\volumes
小智 8
如果您发现 \\wsl$ 输入或记住很困难,Windows 10 2004 版及更高版本中有一种更加 GUI 友好的方法。借助 WSL 2,您可以通过文件资源管理器中的新 Linux 图标安全地导航到所有特殊 WSL 共享:
从那里您可以深入到(例如)\docker-desktop-data\data\docker\volumes,如其他答案中所述。
有关更多详细信息,请参阅Microsoft 官方 WSL 文件系统文档,其中提到了这些访问方法。对于技术好奇的人来说,微软的深入视频应该可以回答很多问题。
小智 7
就我而言,我在 wsl2、windows 10 home 上安装 docker-desktop。我找到我的图像文件
\\wsl$\docker-desktop-data\version-pack-data\community\docker\overlay2
\\wsl$\docker-desktop-data\version-pack-data\community\docker
Run Code Online (Sandbox Code Playgroud)
容器、图像卷信息都在那里。
所有图像文件都存储在那里,并被分成几个具有长字符串名称的文件夹。当我查看每个文件夹时,我可以在“diff”文件夹中找到所有真实的图像文件。
虽然终端显示路径“var/lib/docker”,但该文件夹不存在并且实际文件不存储在那里。我认为没有错误,“var/lib/docker”只是链接或映射到真实文件夹,类似这样
您可以在 Docker 桌面(Windows)的以下路径中找到与主机关联的卷
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes
Run Code Online (Sandbox Code Playgroud)
对我来说,我发现我的卷在
\\wsl$\docker-desktop-data\data\docker\volumes\
Run Code Online (Sandbox Code Playgroud)
使用 WSL2 和 Windows 21H1
我发现我使用 WSL 2 (Ubuntu 20.04) 设置的 Docker 使用以下位置:
C:\Users\UserName\AppData\Local\Docker\wsl\data\ext4.vhdx
Run Code Online (Sandbox Code Playgroud)
UserName你的用户名在哪里。
| 归档时间: |
|
| 查看次数: |
25838 次 |
| 最近记录: |