站点图标 Linux-技术共享

Docker使用卷持久化数据

卷是用于持久化由Docker容器生成和使用的数据的首选机制。尽管绑定安装取决于主机的目录结构和操作系统,但是卷完全由Docker管理。与绑定安装相比,卷具有几个优点:

与绑定安装相比,卷更易于备份或迁移。

您可以使用Docker CLI命令或Docker API管理卷。

卷在Linux和Windows容器上均可工作。

可以在多个容器之间更安全地共享卷。

卷驱动程序使您可以将卷存储在远程主机或云提供商上,以加密卷内容或添加其他功能。

可以通过容器预先填充新卷的内容。

Docker Desktop上的卷比Mac和Windows主机上的绑定挂载具有更高的性能。

此外,与将数据持久保存在容器的可写层中相比,卷通常是更好的选择,因为卷不会增加使用卷的容器的大小,并且卷的内容存在于给定容器的生命周期之外。

如果您的容器生成非持久状态数据,请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方,并通过避免写入容器的可写层来提高容器的性能。

选择-v或--mount标志

总的来说,--mount是更明确和冗长的。最大的区别是该-v语法在一个字段中将所有选项组合在一起,而--mount 语法将它们分开。这是每个标志的语法比较。

如果需要指定音量驱动程序选项,则必须使用--mount。

-v或--volume:由三个字段组成,以冒号(:)分隔。这些字段必须以正确的顺序排列,并且每个字段的含义不是立即显而易见的。

对于命名卷,第一个字段是卷的名称,在给定的主机上是唯一的。对于匿名卷,将省略第一个字段。

第二个字段是文件或目录在容器中的安装路径。

第三个字段是可选的,并且是逗号分隔的选项列表,例如ro。这些选项将在下面讨论。

--mount:包含多个键值对,以逗号分隔,每个键值对都由一个=元组组成。该--mount语法是更详细的比-v或--volume,但按键的顺序并不显著,并且标志的价值更容易理解。

该type安装件,其可以是bind,volume,或 tmpfs。本主题讨论卷,因此类型始终为 volume。

该source的安装。对于命名卷,这是卷的名称。对于匿名卷,将省略此字段。可以指定为source 或src。

的destination作为其值,其中的文件或目录被安装在容器的路径。可以指定为destination,dst或target。

该readonly选项(如果存在)会使绑定安装以只读方式安装到容器中。

volume-opt可以多次指定的选项采用由选项名称及其值组成的键值对。

退出移动版