如何防止重建数据库docker并丢失生产数据

我喜欢使用docker& docker-compose适用于开发和生产环境.

但在我的工作流程中,我一直认为Docker是一次性的:

这意味着如果我需要向docker添加一个功能,我编辑我的Dockerfile,然后运行docker-compose build和docker-compose up -d and done.

但这次,生产数据库也在Docker中.

我仍然需要在我的环境中进行一些更改(例如配置备份),但现在我无法重新运行docker-compose build,因为这意味着丢失所有数据……这意味着我需要进入docker( docker-compose运行web / bin / bash)并在其中运行命令,同时仍然向我的本地Dockerfile报告这些命令以跟踪我的更改.

有关这种情况的最佳做法吗?

我想过设置一个进程,在容器销毁之前将数据库转储到S3存储桶,但它并没有真正扩展到广泛的数据库……

我想让Docker不可破坏(怎么样?),虽然这意味着失去了容器的可处置性.

我想过有一个特殊的分区,它只负责存储数据,并且在重建docker时不会被破坏,尽管它很难设置和解除安全.

所以呢?

谢谢

最佳答案
这就是数据量的用途. docker文档站点上有一个whole page,涵盖了这一点.

我们的想法是,当您销毁容器时,数据量会持续存在,并且当您重新启动它时,数据并没有消失.
我会说,将数据库放入docker容器很难.人们已经做到了,并且有严重的数据和严重的失业.

在将您的生产数据信任到docker容器之前,我建议您仔细阅读此主题. This是一篇很棒的文章,解释了这样做的危险.

转载注明原文:如何防止重建数据库docker并丢失生产数据 - 代码日志