本文介绍了如何在docker compose中运行mongodb副本集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Mac中使用mongoldb-community在本地运行mongodbplicateSet,我遵循我可以通过此命令运行

I have tried to run mongodb replicaSet in local with mongoldb-community in my Mac I follow mongodb doc I can run it by this command

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

但是它不能在后台运行,因此每次我想启动副本集mongodb时,我都应该运行该命令,然后再运行它我应该先停止mongo ,然后在下一个选项卡控制台上,我应该运行 mongo --eval rs.initiate() 再次创建到plicateSet

but it doesn't run on background, so every time I want to start replica set mongodb I should run that command, before I run it I should stop mongo first, then on the next tab console I should run mongo --eval "rs.initiate()" to create to replicaSet again

这是我的docker组成:

here is my 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吗?可能吗 ?

how to convert that into docker-compose ? is it possible ?

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

can I do docker exec CONTAINER_ID [commands] ? to run command mongo like above , but must stop the mongodb run in that docker ?

推荐答案

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

You can have a mongodb replica-set with this docker-compose services:

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

这篇关于如何在docker compose中运行mongodb副本集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 14:10