Fel*_*ino 7 mongodb docker replicaset fig
使用docker和fig设置mongodb副本集的正确方法是什么?
我试图按照官方mongodb教程创建一个fig.yml包含一些副本集的文件,但总是被如何调用rs.initiate()和rs.add("<hostname><:port>")正确阻止.
我找到了这个SO的答案,解释了为什么我不能从shell没有打电话的那一切开始rs.initiate(),所以我怎么能实现呢?
哦,我使用mongo:latest(v2.6.5)作为基本图像,没有任何修改.
SUN*_*N K -4
首先停止 mongod 服务,然后再设置副本集
service mongodb stop
Run Code Online (Sandbox Code Playgroud)
mongod --port“PORT”--dbpath“YOUR_DB_DATA_PATH”--replSet“REPLICA_SET_INSTANCE_NAME”
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0 --fork
Run Code Online (Sandbox Code Playgroud)
它将在端口 27017 上启动一个名为 rs0 的 mongod 实例。现在启动命令提示符并连接到此 mongod 实例。
在 mongo 客户端中发出命令rs.initiate()来启动新的副本集。
rs.initiate()
Run Code Online (Sandbox Code Playgroud)
要检查副本集配置,请发出命令rs.conf()。
rs.conf()应具有以下内容
{
"_id" : "rs0"
"version" : 1,
"members" : [
{
"_id" : 0,
"host" "localhost:27017"
},
{
"_id" : 1,
"host" "localhost:27018"
},
{
"_id" : 2,
"host" "localhost:27019"
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过引用您提供的主机名将其他节点添加到复制集。
rs.add("localhost:27019")
{ "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)
对每个剩余的复制成员执行此操作。您的复制集现在应该已启动并正在运行。
要检查副本集的状态,请发出命令rs.status()。
rs.status()
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |