【问题标题】:Docker Swarm: How to handle persistent data (e.g. database)Docker Swarm:如何处理持久数据(例如数据库)
【发布时间】:2017-10-19 05:03:46
【问题描述】:

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

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

我如何做到这一点?

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

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

为了将 mongodb 服务耦合到特定节点(安装存储的地方),我在相应节点上添加了 label 并使用约束启动 docker 服务。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-08-13
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 2017-11-20
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多