什么是数据专用docker集装箱?

而不是使用数据专用容器,我可以…

  1. 在主机上创build一个目录(比如/ opt / shared_data)
  2. 使用-v / opt / shared_data:/ some / mount / point_inside / container运行每个容器

瞧,现在/ opt / shared_data在所有容器之间有效共享,对吗?

如果我的理解是正确的,如果我创build一个只有数据的容器,然后在运行其他容器时使用“–volumes-from”,我将它们安装到它们所在的相同位置,而这样我就可以select它们在我的容器中安装的目录。

那么为什么我需要“仅数据”容器呢? 此外,卷正好指向主机上的某个地方(/ var / lib / docker / volumes?),它在function上等同于我的/ opt / shared_data。 前者的优点是什么?

数据容器在很大程度上已被弃用,以支持命名卷。 在命名卷上使用数据容器确实没有什么优势,并且包含了卡住挂载点的缺点。

为了比较命名卷和主卷(又名绑定挂载),你有一些不同之处:

  • 主机卷包含权限问题,容器内的用户将不同于容器外的用户,并且可能不容易从这两种环境访问文件
  • 命名卷增加了使用任何卷驱动的能力,因此您可以从远程位置安装数据。
  • 命名卷被初始化为该path中映像的内容,包括所有文件和任何目录权限。

后一点对我来说很重要,这意味着您可以为图像中的数据文件夹创build一个初始默认值,但使用容器更新它并将这些更改保留在指定的卷中。 使用绑定挂载时,如果目录是空的或不存在的,那么当您将其安装到容器中时也是如此。