小编典典

docker数据量与已安装主机目录

docker

我们可以在docker中拥有一个数据量:

$ docker run -v /path/to/data/in/container --name test_container debian
$ docker inspect test_container
...
Mounts": [
    {
        "Name": "fac362...80535",
        "Source": "/var/lib/docker/volumes/fac362...80535/_data",
        "Destination": "/path/to/data/in/container",
        "Driver": "local",
        "Mode": "",
        "RW": true
    }
]
...

但是,如果数据量存在/var/lib/docker/volumes/fac362...80535/_data,则与使用装入文件夹中的数据有什么不同-v /path/to/data/in/container:/home/user/a_good_place_to_have_data


阅读 254

收藏
2020-06-17

共1个答案

小编典典

它与使用-v / path / to / data / in / container:/ home / user /
a_good_place_to_have_data装入文件夹中的数据有何不同?

这是因为,如“
将主机目录装载为数据卷 ”中所述

主机目录从本质上说是依赖于主机的。因此,您不能从Dockerfile挂载主机目录,因为构建的映像应该是可移植的。主机目录并非在所有潜在主机上都可用。

如果您有一些持久性数据要在容器之间共享,或者要从非持久性容器中使用,则最好创建一个命名的数据卷容器,然后从中装入数据。

您可以将两种方法结合使用:

 docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata

在这里,我们启动了一个新容器,并从该dbdata容器装入了卷。
然后,我们将本地主机目录挂载为/backup

最后,我们传递了一个命令,该命令用于tardbdata卷的内容备份到目录backup.tar内的/backup文件中。当命令完成并且容器停止时,我们将获得dbdata卷的备份。

2020-06-17