尽管使用卷和绑定安装感觉相同(唯一的变化是目录的位置),但行为上存在差异。
卷与绑定安装
- 通过 Bind Mount,可以将文件或目录挂载到主机被安装到容器中。文件或目录由其在主机上的完整或相对路径引用。
- 使用 Volume,创建一个新目录在 Docker 的存储目录中在主机上,以及Docker 管理该目录的内容。
卷相对于绑定安装的优势:
- 卷比绑定安装更容易备份或迁移。
- 您可以使用 Docker CLI 命令或 Docker API 管理卷。
- 卷适用于 Linux 和 Windows 容器。
- 卷可以在多个容器之间更安全地共享。
- 卷驱动程序允许您将卷存储在远程主机或云提供商上、加密卷的内容或添加其他功能。
- 新卷的内容可以由容器预先填充。
编辑(2019 年 9 月 9 日):
根据 @Sebi2020 评论,绑定挂载更容易备份。 Docker 不提供任何备份卷的命令。您必须使用带有绑定安装的临时容器来创建备份。
Volumes https://docs.docker.com/storage/volumes/
由 Docker 创建和管理。您可以显式创建卷
使用 docker volume create 命令,或者 Docker 可以创建卷
在容器或服务创建期间。
创建卷时,它存储在计算机上的目录中
Docker 主机。当您将卷安装到容器中时,这
目录是安装到容器中的内容。这是如同
绑定安装的工作方式,除了卷由
Docker 与主机的核心功能隔离
机器。
给定的卷可以同时安装到多个容器中。
当没有正在运行的容器正在使用某个卷时,该卷仍然是
Docker 可用且不会自动删除。您可以删除
使用 docker Volume prune 删除未使用的卷。
当您安装卷时,它可能是命名的或匿名的。匿名的
首次安装卷时未给出明确的名称
到容器中,因此 Docker 给它们一个随机名称,即
保证在给定的 Docker 主机中是唯一的。除了名字之外,
命名卷和匿名卷的行为方式相同。
卷还支持使用卷驱动程序,它允许您
将您的数据存储在远程主机或云提供商等上
的可能性。
绑定坐骑 https://docs.docker.com/storage/bind-mounts/
自 Docker 诞生之初就可用。绑定安装数量有限
功能与体积相比。当您使用绑定挂载时,文件
或者将主机上的目录挂载到容器中。文件
或目录由其在主机上的完整路径引用。这
文件或目录不需要已存在于 Docker 主机上。
如果尚不存在,则会根据需要创建它。绑定安装非常
高性能,但它们依赖于主机的文件系统
可用的特定目录结构。如果您正在开发新产品
Docker 应用程序请考虑使用命名卷。你不能
使用 Docker CLI 命令直接管理绑定挂载。
还有tmpfs mounts
.
tmpfs 挂载 https://docs.docker.com/storage/tmpfs/
A tmpfs mount is not persisted on disk, either on the Docker host or
within a container. It can be used by a container during the lifetime
of the container, to store non-persistent state or sensitive
information. For instance, internally, swarm services use tmpfs mounts
to mount secrets into a service’s containers.
![tmpfs on the Docker host](https://i.stack.imgur.com/aWsD3.png)
参考:
https://docs.docker.com/storage/ https://docs.docker.com/storage/