目前,我正在尝试学习docker,但对于数据量实际存在的位置感到困惑。
我正在使用Windows的Docker桌面。(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
,/var/lib/docker
通常安装在中C:\Users\Public\Documents\Hyper-V\Virtual hard disks
。无论如何,您可以通过查看Docker设置来进行检查。
您可以参考这些文档以获取有关如何在Windows上与Docker共享驱动器的信息。
BTWSource
是主机Destination
上的位置,也是以下输出中容器内部的位置:
"Mounts": [
{
"Name": "fac362...80535",
"Source": "/var/lib/docker/volumes/fac362...80535/_data",
"Destination": "/webapp",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
================================================== ========================
更新以回答评论中的问题:
我的主要好奇是共享图像等很棒,但是如何共享数据?
实际上volume
是为此目的而设计的(在Docker容器中管理数据)。卷中的数据保留在主机FS上,并与Docker容器/映像的生命周期隔离。您可以通过以下方式批量共享数据:
挂载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-hub吗?
否。您可以将Docker映像推送到Docker集线器(也称为“注册表”)。但是数据不是。您可以使用任何喜欢的方法来备份/持久/共享数据,但是将数据推送到Docker注册表以共享它没有任何意义。
我可以进行备份等吗?
是的,如上所述:-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句