Docker Swarm:如何处理持久数据(例如数据库)

时间:2017-05-19 07:13:44

标签: docker docker-swarm docker-volume docker-swarm-mode

我有3节点泊坞群模式群集(1个经理和2个工作人员)。

现在我想将mongodb服务部署到集群,我想将数据库存储在/mnt/data下挂载的持久存储上。所以基本上我希望服务在每个容器/db/data中使用我的已安装存储。

我如何实现这一目标?

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

  • 我不确定是否应该使用volumebind-mount
  • 如果我选择volume,我该如何告诉泊门铁人将此卷存储在/mnt/data

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

1 个答案:

答案 0 :(得分: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
  3. 您还可以查看在swarm中设置mongodb群集以使db在HA模式下运行。请点击以下链接 https://medium.com/@kalahari/running-a-mongodb-replica-set-on-docker-1-12-swarm-mode-step-by-step-a5f3ba07d06e