【问题标题】:Docker bind mount directory vs named volume performance comparisonDocker 绑定挂载目录与命名卷性能对比
【发布时间】:2020-11-01 07:24:53
【问题描述】:

以下 docker 命名卷与绑定挂载卷之间是否存在性能差异?如果是,我们在谈论多少数字?

  1. Docker 卷示例:
docker run -v mysql:/var/lib/mysql mysql:tag
  1. Docker 绑定挂载示例:
docker run -v /path/to/mysql-data:/var/lib/mysql mysql:tag

这些容器主要用于数据库,如 elasticsearch、mysql 和 mongodb。我应该更喜欢哪一个?

【问题讨论】:

  • afaik 没有区别。显然,如果主机上的映射文件夹是本地的。

标签: docker containers


【解决方案1】:

在几个平台(MacOSWindows with WSL 2)上,已知绑定挂载速度特别慢。

除此之外,您不会看到命名卷、容器文件系统、映像中的文件(无论层数如何)或绑定挂载(尤其是在本机 Linux 上)之间存在明显的性能差异。

一个好的通用规则可能是对配置文件和日志文件使用绑定挂载,其中 I/O 相对较少,但您作为人类需要直接访问文件;用于数据库存储和其他 I/O 相对频繁但作为人类无法直接读取文件的内容的命名卷;以及应用程序代码的图像本身。

【讨论】:

  • 我绝对不是专家,但该 Windows 链接似乎提出了关于 where 绑定挂载的建议,而不是比较绑定挂载和卷,特别推荐绑定挂载到另一个 Linux 容器,而不是 Windows 文件系统。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2020-07-26
  • 1970-01-01
  • 2019-08-23
  • 2019-08-24
  • 1970-01-01
相关资源
最近更新 更多