目錄
1. 前期準備
2. 導入鏡像
3. 部署MongoDB腳本
4. 配置模板文件
5. 部署MongoDB
6. 部署后配置
7. 基本維護
1. 前期準備
新部署前可以從倉庫(repository)下載 MongoDB 鏡像,或者從已有部署中的鏡像生成文件:
# 查看當前本地鏡像
docker images
# 生成本地鏡像文件
docker save <IMAGE ID> -o mongodb_3015.tar
生成 MongoDB 副本集所需的 autokey 文件:
# 建立autokey文件
openssl rand -base64 756 > autokey
# 修改讀寫模式
chmod 400 autokey
2. 導入鏡像
# 在新部署的機器上導入鏡像
docker load -i mongodb_3015.tar
docker images
3. 部署MongoDB腳本
mongodb-deploy.sh 文件內(nèi)容如下:
#!/bin/bash
mkdir -p /usr/local/docker/mongodb/conf
mkdir -p /usr/local/docker/mongodb/data
cp /root/autokey /usr/local/docker/mongodb/data/
cp /root/mongodb.conf.template /usr/local/docker/mongodb/conf/mongodb.conf
chown -R polkitd:root /usr/local/docker/mongodb/
docker run --name mongo \
-v /usr/local/docker/mongodb/data:/data/db \
-v /usr/local/docker/mongodb/conf:/data/conf \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
-itd a.com:8443/dockerhub/mongo:3.0.15 \
--replSet mvbox_new
4. 配置模板文件
mongodb.conf.template 文件內(nèi)容如下:
port ? ? ? ? ? ?= 27017
logpath ? ? ? ? = /data/db/mongodb.log
pidfilepath ? ? = /data/db/mongodb.pid
dbpath ? ? ? ? ?= /data/db/
logappend ? ? ? = true
fork ? ? ? ? ? ?= true
journal ? ? ? ? = true
directoryperdb ?= true
auth ? ? ? ? ? ?= true
maxConns ? ? ? ?= 1000
profile ? ? ? ? = 1
replSet ? ? ? ? = mvbox_new
keyFile ? ? ? ? = /data/db/autokey
5. 部署MongoDB
# 在所有 MongoDB 副本集機器執(zhí)行
./mongodb-deploy.sh
6. 部署后配置
在 primary 機器上執(zhí)行下面的操作。文章來源:http://www.zghlxwxcb.cn/news/detail-619858.html
# 配置副本集
cp /root/rs_initiate.js /usr/local/docker/mongodb/data/
docker exec -it mongo mongo --port 27017 /data/db/rs_initiate.js
rs_initiate.js 文件內(nèi)容如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-619858.html
rs.initiate(
? ?{
? ? ? _id: "mvbox_new",
? ? ? version: 1,
? ? ? members: [
? ? ? ? ?{ _id: 0, host : "172.18.29.56:27017", priority:2 },
? ? ? ? ?{ _id: 1, host : "172.18.29.57:27017", priority:1 },
? ? ? ? ?{ _id: 2, host : "172.18.29.58:27017", priority:1 }
? ? ? ]
? ?}
)
# 創(chuàng)建 admin 用戶
docker exec -it mongo mongo --port 27017
use admin;
db.createUser({user : "admin", pwd : "123456", roles: [ { role : "root", db : "admin" } ] });
exit;
# 重新登錄,創(chuàng)建更多用戶
docker exec -it mongo mongo --port 27017 -u admin -p 123456 admin
use admin
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
db.createUser({user : "vvlive", pwd : "123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
use vvmusic_msg
db.createUser({user : "vvmusic_msg", pwd : "123456", roles: [ { role : "dbOwner", db : "vvmusic_msg" } ] });
use vvlive
db.createUser({user : "vvlive", pwd : "3123456", roles: [ { role : "dbOwner", db : "vvlive" } ] });
exit;
# 驗證用戶登錄
docker exec -it mongo mongo --port 27017 -u admin -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvlive -p 123456 vvlive
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 admin
docker exec -it mongo mongo --port 27017 -u vvmusic_msg -p 123456 vvmusic_msg
7. 基本維護
# 查看鏡像
docker images
# 查看容器
docker ps
# 查看容器詳細信息
docker inspect <CONTAINER ID>
# 重啟容器
docker restart mongo
# 停止容器
docker stop mongo
# 刪除容器
docker rm mongo
到了這里,關(guān)于使用 docker 一鍵部署 MongoDB的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!