【问题标题】:Are Bind Mounts and Host Volumes the same thing in Docker?在 Docker 中绑定挂载和主机卷是一样的吗?
【发布时间】:2021-11-28 11:03:04
【问题描述】:

我在各种文章中看到了术语“绑定挂载”和“主机卷”,但没有一篇提到它们是否相同。但看看它们的功能,它们看起来几乎是一回事。任何人都可以回答它是否是同一件事?如果不是,有什么区别?

参考:

Docker Docs - Use bind mounts

https://blog.logrocket.com/docker-volumes-vs-bind-mounts/

【问题讨论】:

    标签: docker containers docker-volume


    【解决方案1】:

    它们是不同的概念。

    bind mounts中所述:

    绑定挂载从 Docker 早期就已经存在。与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录会挂载到容器中。文件或目录由其在主机上的绝对路径引用。相比之下,当您使用卷时,会在主机上 Docker 的存储目录中创建一个新目录,并由 Docker 管理该目录的内容。

    正如volumes中提到的:

    卷是保存由 并由 Docker 容器使用。虽然绑定挂载依赖于 主机的目录结构和操作系统,卷是完全 由 Docker 管理。与绑定挂载相比,卷有几个优点:

    • 卷比绑定挂载更容易备份或迁移。
    • 您可以使用 Docker CLI 命令或 Docker API 管理卷。
    • 卷可在 Linux 和 Windows 容器上运行。
    • 可以在多个容器之间更安全地共享卷。
    • 卷驱动程序可让您将卷存储在远程主机或云提供商上、加密卷的内容或添加其他功能。
    • 新卷的内容可以由容器预先填充。
    • Docker Desktop 上的卷比来自 Mac 和 Windows 主机的绑定挂载具有更高的性能。

    【讨论】:

      【解决方案2】:

      “绑定挂载” 是指您让容器查看和使用主机上普通文件系统中的普通目录。容器中运行的程序所做的更改将在主机的文件系统中可见。

      “卷” 是主机上的单个文件,其作用类似于容器可见的整个文件系统。您通常无法从主机看到里面的内容。

      【讨论】:

      • 我的回答是从 30,000 英尺的高度观看。 @atline answer 提供了更多的优点、缺点和讨论。
      【解决方案3】:

      我想通了。

      Docker 中有 3 种类型的存储。

      1. Bind mounts-also known as host volumes. 
      2. Anonymous volumes. 
      3. Named volumes. 
      

      所以绑定挂载 = 主机卷。他们是一样的东西。 “主机卷”必须是一个不赞成的术语,因为我在 Docker 文档中看不到它。但从1-2年前发表的各种文章中就可以看出。

      将其称为“主机卷”的示例:

      https://docs.drone.io/pipeline/docker/syntax/volumes/host/

      https://spin.atomicobject.com/2019/07/11/docker-volumes-explained/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 2017-06-19
        • 2017-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-05
        • 2019-04-10
        相关资源
        最近更新 更多