我在很多文章中看到过“bind mount”和“host volume”这两个词,但是没有一篇文章提到它们是不是一回事。但是从它们的功能来看,它们看起来几乎是一回事。有人能回答它们是不是一回事吗?如果不是,有什么区别?
参考:
Docker Docs - Use bind mounts
https://blog.logrocket.com/docker-volumes-vs-bind-mounts/
我在很多文章中看到过“bind mount”和“host volume”这两个词,但是没有一篇文章提到它们是不是一回事。但是从它们的功能来看,它们看起来几乎是一回事。有人能回答它们是不是一回事吗?如果不是,有什么区别?
参考:
Docker Docs - Use bind mounts
https://blog.logrocket.com/docker-volumes-vs-bind-mounts/
4条答案
按热度按时间0tdrvxhp1#
它们是不同的概念。
如bind mounts中所述:
绑定装载从Docker早期就已出现。与卷相比,绑定装载的功能有限。使用绑定装载时,主机上的文件或目录将装载到容器中。文件或目录将由其在主机上的绝对路径引用。相比之下,使用卷时,将在主机上Docker的存储目录中创建一个新目录。Docker管理该目录的内容。
如volumes中所述:
卷是持久保存Docker容器生成和使用的数据的首选机制。虽然绑定装载取决于主机的目录结构和操作系统,但卷完全由Docker管理。卷与绑定装载相比有以下几个优点:
lrpiutwd2#
“绑定挂载”是指你让你的容器看到并使用你主机上一个普通文件系统中的一个普通目录。在容器中运行的程序所做的更改将在你主机的文件系统中可见。
“卷”是主机上的一个文件,它就像一个完整的文件系统,对容器可见,通常你不能从主机上看到里面的内容。
toiithl63#
我能想出来。
Docker中有3种存储类型。
所以bind mount = host volume。它们是一回事。“Host volume”一定是一个不受欢迎的术语,因为我在Docker文档中看不到它。但是在1-2年前发表的各种文章中可以看到它。
将其称为“主机卷”的示例:
https://docs.drone.io/pipeline/docker/syntax/volumes/host/
https://spin.atomicobject.com/2019/07/11/docker-volumes-explained/
pgvzfuti4#
此文档页面Manage data in Docker非常有用
*卷存储在Docker管理的主机文件系统的一部分中(Linux上为/var/lib/docker/volumes/)。非Docker进程不应修改文件系统的这一部分。卷是在Docker中持久保存数据的最佳方式。
*绑定装载可以存储在主机系统上的任何位置。它们甚至可以是重要的系统文件或目录。Docker主机或Docker容器上的非Docker进程可以随时修改它们。