5

我有 3 节点 docker swarm 模式集群(1 名经理和 2 名工人)。

现在我想将一个 mongodb 服务部署到集群,并且我想将数据库存储在我安装在/mnt/data. 所以基本上我希望该服务使用我在每个容器中安装的存储/db/data

我如何实现这一目标?

我让自己熟悉,docker service create --mount但是

  • 我不确定我应该使用 avolume还是 a bind-mount
  • 如果我选择volume如何告诉 docker 将此卷存储在/mnt/data

要将 mongodb 服务耦合到特定节点(安装存储的位置),我将 a 添加label到相应的节点并使用约束启动 docker 服务。

4

1 回答 1

3

您需要将安装卷与 mongodb 数据绑定。在主服务器上执行以下步骤

  1. docker volume create -d local --name mongodata
  2. docker service create --network mongo \ --mount type=volume,source=mongodata,target=/data/db \ --constraint 'node.role == manager' \ mongo:3.2

您还可以查看在 swarm 中设置 mongodb 集群以使数据库在 HA 模式下运行。按照以下链接 https://medium.com/@kalahari/running-a-mongodb-replica-set-on-docker-1-12-swarm-mode-step-by-step-a5f3ba07d06e

于 2017-07-13T13:38:13.670 回答