【问题标题】:how to run mongodb replica set in docker compose如何在docker compose中运行mongodb副本集
【发布时间】:2020-06-15 13:18:05
【问题描述】:

我尝试在我的 Mac 中使用 mongodb-community 在本地运行 mongodb replicaSet 我遵循 mongodb doc 我可以通过此命令运行它

mongod --port 27017 --dbpath /usr/local/var/mongodb --replSet rs0 --bind_ip localhost,127.0.0.1

但它不会在后台运行,所以每次我想启动副本集 mongodb 时,我都应该运行该命令,在我运行它之前先运行 I should stop mongo,然后在下一个选项卡控制台上运行 mongo --eval "rs.initiate()" 到再次创建到replicaSet

这是我的 docker compose:

version: "3.7"
services:
  mongodb_container:
    image: mongo:latest
    ports:
      - 27017:27017
    volumes:
      - mongodb_data_container:/data/db

volumes:
  mongodb_data_container:

如何将其转换为 docker-compose ?可能吗 ?

我可以docker exec CONTAINER_ID [commands] 吗?像上面一样运行命令 mongo,但必须停止 mongodb 在该 docker 中运行?

【问题讨论】:

    标签: mongodb docker docker-compose dockerfile


    【解决方案1】:

    您可以使用此 docker-compose 服务拥有一个 mongodb 副本集:

    mongodb-primary:
        image: "bitnami/mongodb:4.2"
        user: root
        volumes:
          - ./mongodb-persistence/bitnami:/bitnami
        networks:
          - parse_network
        environment:
          - MONGODB_REPLICA_SET_MODE=primary
          - MONGODB_REPLICA_SET_KEY=123456789
          - MONGODB_ROOT_USERNAME=admin-123
          - MONGODB_ROOT_PASSWORD=password-123
          - MONGODB_USERNAME=admin-123
          - MONGODB_PASSWORD=password-123
          - MONGODB_DATABASE=my_database
        ports:
          - 27017:27017
    
      mongodb-secondary:
        image: "bitnami/mongodb:4.2"
        depends_on:
          - mongodb-primary
        environment:
          - MONGODB_REPLICA_SET_MODE=secondary
          - MONGODB_REPLICA_SET_KEY=123456789
          - MONGODB_PRIMARY_HOST=mongodb-primary
          - MONGODB_PRIMARY_PORT_NUMBER=27017
          - MONGODB_PRIMARY_ROOT_USERNAME=admin-123
          - MONGODB_PRIMARY_ROOT_PASSWORD=password-123
        networks:
          - parse_network
        ports:
          - 27027:27017
    
      mongodb-arbiter:
        image: "bitnami/mongodb:4.2"
        depends_on:
          - mongodb-primary
        environment:
          - MONGODB_ADVERTISED_HOSTNAME=mongodb-arbiter
          - MONGODB_REPLICA_SET_MODE=arbiter
          - MONGODB_PRIMARY_HOST=mongodb-primary
          - MONGODB_PRIMARY_PORT_NUMBER=27017
          - MONGODB_PRIMARY_ROOT_PASSWORD=password-123
          - MONGODB_REPLICA_SET_KEY=123456789
        networks:
          - parse_network
        ports:
          - 27037:27017
    
    networks:
      parse_network:
        driver: bridge
        ipam:
          driver: default
    volumes:
      mongodb_master_data:
        driver: local
    

    【讨论】:

    • 连接到我的应用程序的 URI 是什么?我应该在我的 mongo 指南针中使用那个 URI 吗?有那个凭证?
    • mongodb://admin-123:password-123@mongodb-primary:27017/my_database?authSource=my_database
    • mongoldb-primary 是从哪里来的?而且我们不把?replicaSet=devrs 也放了吗??
    • authSource 是什么??
    • 评论用于扩展讨论。请考虑createing a chatupdating the original questionasking a new one
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2021-08-04
    相关资源
    最近更新 更多