只读Docker数据的可移植性(卷)

我有一个Docker镜像,它有一个Postgres服务器,MongoDB服务器和其上运行的另一个Web服务器。 这些服务器中的每一个都需要大量(10 GB的)数据量,基本上是只读的,我们只使用Postgres等来有效地从这些大型数据集中select数据。 我需要部署Docker镜像的许多实例,因此可移植性非常重要,启动时间也很重要。

我试过使用卷,这似乎是在Docker容器中拥有大量数据的唯一可接受的方式。 这对我来说是无效的:要填充一个卷,我需要用这些大数据集来初始化它。 为此,我必须序列化数据并编写代码将其加载到卷中。 这花了很长的时间,它引入了复杂性,并且是多余的,因为每个容器将执行相同的步骤来加载相同的数据。

我倾向于在Dockerfile中执行数据加载,并将这些大型数据集构build到图像本身中。 这产生令人难以置信的巨大的图像明显的缺点。 我也注意到,服务器,Postgres,Mongo,Web服务器需要更长的启动时间。 然而,以这种方式将图像分配给许多实例要容易得多。 我听说,不build议将大量数据烧成Docker镜像,但是我还没有听到明确的理由。

有没有这种Docker的最佳做法?