如何在docker compose中运行mongodb副本集

Weq*_*Iou 6 mongodb docker dockerfile docker-compose

我尝试在 Mac 中使用 mongodb-community 在本地运行 mongodb副本集 我遵循mongodb 文档我可以通过此命令运行它

mongod --port 27017 --dbpath /usr/local/var/mongodb --replSet rs0 --bind_ip localhost,127.0.0.1
Run Code Online (Sandbox Code Playgroud)

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

这是我的码头工人组成:

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

volumes:
  mongodb_data_container:
Run Code Online (Sandbox Code Playgroud)

如何将其转换为 docker-compose ?是否可以 ?

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

Ana*_*ava 4

您可以使用此 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
Run Code Online (Sandbox Code Playgroud)