Docker 中的 EventStore

Docker 中的 EventStore

我正在忙于研究 Docker 在我正在开发的系统中的使用情况。我们使用 EventStore,我很高兴看到有一个Docker 容器已经为它了。

但是当我浏览它时,我发现这个帖子被多次发布。

注意:此容器仅用于开发目的

我正在尝试找出是什么原因导致此容器不适合生产,但似乎无法从任何人那里找到直接的答案。我得到的最接近的答案是所有 ES 节点都将位于同一个容器中,因此如果它发生故障,则一切都会故障。

还有这个线

那么有人可以给我一个简洁的理由来解释为什么 ES 不适合在生产环境中使用 Docker 吗?

答案1

免责声明:我不是专家活动商店。Event Store 可能存在一些特定功能,使得它不太适合从我不知道的容器中运行。

一般来说,您可以将大多数服务“dockerise”,并且它们的性能可以与服务器上本地运行的服务一样好。

需要注意的事项包括:

  • 你的数据存储在哪里
  • 你的配置文件保存在哪里
  • 需要什么表现
  • 那么安全

数据:由于示例中容器的运行方式,您的数据将位于容器“内部”。删除或升级容器,您的数据将永远消失。

使你的数据持久使用数据量或者数据卷容器. 这些将您的数据保存在主机上(它们的 Dockerfile 已经支持它,请参阅VOLUME)。

还有一些存储解决方案允许您使用以下方式远程访问数据音量插件

配置文件:与您的数据一样。您可以将配置文件保存在数据卷(容器)中,也可以通过 Dockerfile 传递它们(就像他们在 Dockerfile 中所做的那样)。

表现:在某些情况下,使用 Docker 与使用本机相比可能会略微降低性能。请参阅https://stackoverflow.com/q/21889053/4459346

安全:由于示例中容器的运行方式,事件存储将暴露在主机上。任何人都可以从外部访问它们。要将它们保留在主机本地,请使用-p 127.0.0.1:1113:1113

在我工作的公司,我在容器中设置了一台mysql服务器。数据和配置文件“存储”在数据卷容器中。我还设置了一个 cron 作业,运行另一个容器将数据备份mysql到主机。

许多应用程序(也已“docker化”)都乐于使用mysql这种方式。我们没有看到与mysql本地运行有什么区别。一次可以有 50 多个用户。

相关内容