如何:在弹性容器服务上 Dockerized MongoDB 复制

Cla*_*u S 10 amazon-web-services mongodb docker amazon-ecs

我有一个 Node.js 应用程序和一个在 AWS ECS 上运行的 MongoDB 数据库。我目前的设置由 2 个 ELB 和 2 个实例组成,每个实例运行一个 Docker 容器及其分配的服务(节点/mongo):

Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB
Run Code Online (Sandbox Code Playgroud)

我正在运行 MongoDB 的官方 Docker 映像:https : //registry.hub.docker.com/_/mongo/

关于如何使用 Docker 和 ECS 为 MongoDB 部署副本集的任何指示,每个副本都运行在不同的实例上?

use*_*461 2

不要对数据库进行 Docker 化。Docker 容器是短暂的,不保存数据。这不适合数据库。

特别是,不要尝试对 MongoDB 集群进行 docker 化。副本集的设置非常有状态且复杂。您必须按顺序运行许多命令,并且只能运行一次。如果您错过任何命令或者某个节点发生故障,整个集群可能会死锁,您将被迫重新开始。

Docker 对于应用程序的行为方式有自己的想法。在 Docker 中实现这一点确实很困难。

如果您想要一个具有 3 个副本的集群,您应该获取 3 个 AWS 实例并在实例上设置 MongoDB。在 Google 上搜索mongodb setting up a replica set on <OS>,将为您提供最新的教程。