docker安装Mongodb

单机

docker run \
--name mongodb1 \
-d -p 27018:27017 \
--restart=always \
-v /data/mongodb/data:/data/db \
mongo:4.2.18 \
--auth

# 进入mongodb 
mongo

# 创建账号
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})

一主一从一仲裁

# 创建秘钥
openssl rand -base64 756 > /data/mongodb/conf/mongoKeyfile.key
# 给秘钥创建赋予权限
chmod 600 keyfile.key
# 分发到其他服务器


# 主
docker run -d --name mongodb \
--restart=always \
-p 27017:27017 \
-v /data/mongodb/data:/data/db \
-v /data/mongodb/conf:/data/configdb \
-v /data/mongodb/conf/mongoKeyfile.key:/data/configdb/mongoKeyfile.key \
mongo:4.2.18 \
--replSet=mongo_rs --bind_ip_all --logappend --keyFile /data/configdb/mongoKeyfile.key 

# 从节点
docker run -d --name mongodb \
-p 27017:27017 \
-v /data/mongodb/data:/data/db \
-v /data/mongodb/conf:/data/configdb \
-v /data/mongodb/conf/mongoKeyfile.key:/data/configdb/mongoKeyfile.key \
mongo:4.2.18 \
--replSet=mongo_rs --bind_ip_all --logappend --keyFile /data/configdb/mongoKeyfile.key 

# 仲裁节点
docker run -d --name mongodb \
-p 27017:27017 \
-v /data/mongodb/data:/data/db \
-v /data/mongodb/conf:/data/configdb \
-v /data/mongodb/conf/mongoKeyfile.key:/data/configdb/mongoKeyfile.key \
mongo:4.2.18 \
--replSet=mongo_rs --bind_ip_all --logappend --keyFile /data/configdb/mongoKeyfile.key 

# 配置副本集
# 进入主节点容器
docker exec -it mongodb mongo

# 切换数据库并登录
use admin;

# 配置副本集
rs.initiate({
  _id: "mongo_rs",
  members: [
    { _id: 0, host: "192.168.0.11:27017" },  // 主节点
    { _id: 1, host: "192.168.0.12:27017" },  // 从节点
    { _id: 2, host: "192.168.0.13:27017", arbiterOnly: true }  // 仲裁节点
  ]
})

# 查看集群状态
rs.status()

# 切换至admin
use admin

# 添加用户
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})

# 登录
db.auth('root','123456')

你可能感兴趣的:(Docker,docker,mongodb)