Docker 数据库文件:在容器内还是容器外?

Docker database files: inside or outside the container?

我们一直在研究在我们的服务器上使用 Docker 实施 Oracle 数据库系统,并且正在考虑两种不同的数据管理策略:

这背后的原因是我们喜欢能够即时更改版本的想法,当我们需要恢复到我们程序的旧版本以修复错误时(例如,如果旧版本在生产比我们目前正在研究的那个)。从这个意义上说,我们拥有的容器也应该在其中包含我们应用程序的特定版本(它是一个网络应用程序)。

所以我的问题如下:哪种方法最适合我们的情况?是否有我们遗漏但会更好的容器组织?正在寻找有关此事的更多意见。我们已经被告知第一种方法比将所有内容都保存在容器中性能更好,但我们的测试没有显示任何改进。

谢谢!

选择第一个选项而忘记第二个选项,因为您不想在 Docker 分层文件系统上进行任何密集的磁盘访问。

Docker 容器有一个分层的文件系统,它不能提供很好的性能。这就是为什么您应该将数据放在一个卷上,该卷最终是 docker 主机文件系统中文件夹的挂载点。

如果您查看数据库的所有官方 docker 图像,它们都会声明数据量。参见 MySQL, Postgres