【发布时间】:2021-10-27 16:32:29
【问题描述】:
我有一个 MongoDb 容器,它使用配置如下代码的单节点副本集。要运行副本集,我需要在 mongoDb shell 上执行另一个命令 rs.initiate() 如何将该命令添加到容器配置命令列表中,这样我就不必在 MongoDb shell 上手动执行该命令?
mongodb:
image: mongo:5.0
container_name: mongodb
command: ["--replSet", "rs0", "--bind_ip_all"] # This works but i have to manually go into mongoshell to execute rs.initilize(), i dont want to do that
# command: ["--replSet", "rs0", "--bind_ip_all","mongo", "rs.initiate()"] # --> Does't work
# command: ["--replSet", "rs0", "--bind_ip_all","rs.initiate()"] # --> Does't work
# command: ["--replSet", "rs0", "--bind_ip_all", "mongo rs.initiate()"] # --> Does't work
networks:
- dev
ports:
- 27017:27017
volumes:
- ${HOME}/mongodb:/data/db
【问题讨论】:
-
我也希望不必执行到容器中并运行
rs.initiate(),所以我也想回答这个问题。尽管 Ather 有一个问题,我将这个单节点 rs 添加到我的 docker-compose 文件中并启动它,但我无法使用连接字符串mongodb://localhost:27017/myDB?replicaSet=rs0连接到它,你如何连接到它? -
这个连接字符串对我有用(与 MongoDB Compass UI 一起使用)mongodb://localhost:27017/?replicaSet=rs0&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false
标签: mongodb replicaset