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

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

谢弘阔
2023-03-14
问题内容

我们可以在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


问题答案:

它与使用-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卷的备份。



 类似资料:
  • 问题内容: 我已经能够成功使用以下卷在Docker容器之间共享文件夹 但是我的问题是,这与在Dockerfile中使用命令之间有什么区别 我正在使用带有命令的图像,并且想知道如何与主机共享它。我已经使用上面的命令完成了此操作,但我不知道是否同时需要和和。 问题答案: 该命令将在您的容器中安装一个目录,并将在该目录中创建或编辑的所有文件存储 在容器文件结构外部的 主机磁盘上,绕过联合文件系统。 这个

  • 我想确保我的Postgres数据(使用基于Linux图像)保持,即使在我的Windows主机重启后。 我尝试按照以下步骤操作如何使用卷将数据持久化到dockerize postgres数据库中 然而,我发现了一个错误 然后,我试着跟着插手https://forums.docker.com/t/trying-to-get-postgres-to-work-on-persistent-windows-

  • 我有Docker命令来创建一个容器,然后使用该容器的名称与-卷-从运行另一个容器,它工作正常- 以上内容将从映像my/configurator:4.0.0创建一个名为shared config的新容器 当试图运行任何其他容器(比如my/oms:4.0.0)时,我可以简单地使用名为shared config的容器中的卷,使用--volumes from 使用--volumes from我们可以多次使

  • 问题内容: 我在Docker容器中安装并将其与主机同步时遇到问题。我的Docker版本是,而Docker Compose版本是。 我的样子是: 我的: 该应用程序运行良好。源代码已同步。热装也很棒。 我唯一的问题是主机上的文件夹为空。是否可以将Docker容器中的文件夹与主机同步? 另外,我已经找到了此博客文章。作者试图解决我面临的同样问题。问题是,由于我们只是将它们从Docker容器复制到主机,

  • 我用这个参数挂载了容器: -v /home/test/:/home/test 在主机的/home/test内部有一个指向/mnt/文件夹的符号链接。 但是,尽管可以看到链接指向何处,但在容器内部似乎断开了: 这甚至可以在docker中实现吗?我不确定是否有办法做到这一点。 我知道我可以直接挂载符号链接指向的位置,但我只是想知道这是否可能。