为什么Docker vfs存储后端不适合生产?

Mar*_*ann 6 docker

Docker vfs存储后端在几个地方被提及为不是生产后端(参见Michael Crosby的这个Docker GitHub 问题评论).是什么让它不适合生产?

Project Atomic 对存储后端描述说:

vfs后端是一个非常简单的后备,没有写时复制支持.每个层只是一个单独的目录.通过将基础层的深层副本放入新目录来完成基于另一层创建新层.

由于此后端不共享层之间的磁盘空间使用,并且由于创建新层是一个缓慢的操作,因此这不是一个非常实用的后端.但是,它仍有其用途,例如验证其他后端,或者如果您需要一个适用于所有地方的超级健壮(如果很慢)后端.

根据该描述,听起来唯一的缺点是可能会使用更多磁盘空间并且创建图层可能会更慢.但是在运行时访问文件时没有提到缺点,它甚至被描述为"健壮".单独的磁盘空间问题似乎不是生产使用的阻止程序.

cre*_*ack 7

实际上,您可以vfs在生产中使用驱动程序,但请注意,由于它是"常规"副本,因此您不会受益于devicemapper或btrfs可以提供的功能,并且您完全依赖于基础文件系统.

运行时的缺点是速度要慢得多run.一旦启动,如果你有相同的底层文件系统,它将是相同的事情.

简而言之,我建议反对因为:

  • 它首先用于测试然后用于卷.从来没有打算用于运行时
  • 它依赖于底层文件系统,因此您可以减少Docker对文件的控制.它可能(或可能不会)导致未来升级出现问题.Docker的目的是抽象主机,所以最好将这种东西委托给Docker.
  • 它需要大量的磁盘空间
  • 运行或提交需要花费大量时间