
#### 创建镜像
# docker build -t docker.alphabets.cn/mongo:0.0.1 mongo
# docker build -t docker.alphabets.cn/mongoalone:0.0.1 alone
# docker build -t docker.alphabets.cn/mongoreplica:0.0.1 replica

################ alone
#### 启动数据卷
# docker run --name mongo_data -v /data/mongodb/log -v /data/mongodb/data docker.alphabets.cn/data:0.0.1

#### 启动容器
# docker run --name mongo -h mongo --restart=always -p 57017:57017 -d --volumes-from=mongo_data docker.alphabets.cn/mongoalone:0.0.1

#### 数据，日志文件分别保存在以下目录
 - 日志 /data/mongodb/log
 - 数据 /data/mongodb/data

################ replica
#### Replica时，使用的Key文件生成
openssl rand -base64 741 > mongodb-keyfile
chmod 600 mongodb-keyfile

#### 启动容器
docker run --name mongo_p_data -v /data/mongodb/log -v /data/mongodb/data docker.alphabets.cn/data:0.0.1
docker run --name mongop -h mongo --restart=always -p 57017:57017 -d --volumes-from=mongo_p_data docker.alphabets.cn/mongoreplica:0.0.1

docker run --name mongo_a_data -v /data/mongodb/log -v /data/mongodb/data docker.alphabets.cn/data:0.0.1
docker run --name mongoa -h mongo --restart=always -p 57027:57017 -d --volumes-from=mongo_a_data docker.alphabets.cn/mongoreplica:0.0.1

docker run --name mongo_s_data -v /data/mongodb/log -v /data/mongodb/data docker.alphabets.cn/data:0.0.1
docker run --name mongos -h mongo --restart=always -p 57037:57017 -d --volumes-from=mongo_s_data docker.alphabets.cn/mongoreplica:0.0.1

####

db1
 PRIMARY 57017
 ARBITER 57027

db2
 SECONDARY 57037

db3
 SECONDARY 57037

#### 配置
> var config = {
  _id: 'LightDB',
  members: [
    {_id:0, host:'db1:57017', priority:2},
    {_id:2, host:'db1:57027', arbiterOnly: true}
    {_id:3, host:'db2:57037', priority:1},
    {_id:4, host:'db3:57037', priority:1},
  ]
}

# 初始化
> rs.initiate(config)

# 查看
> rs.status()

# 修改
> var config = rs.config()
> config
> config.members[0].priority = 2
> rs.reconfig(config)

# 创建账户
# mongo --port 57017 -u root -p e37cc2ba9de7 --authenticationDatabase=admin
> use admin
> db.createUser({user: "root",pwd: "password",roles: [{ role: "root", db: "admin" }]});

> var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3
> db.system.version.save(schema)

# 创建数据库账户
> use 5f555321d868
> db.createUser({user:'ntsadmin', pwd: 'ntsadmin', roles:["readWrite", "dbAdmin"]})
