一、实验环境
操作系统:CentOS7.5 Minimal
IP: 192.168.1.105
二、安装docker,拉取mongoDB镜像
【Docker】CentOS7.x上docker的安装方式
https://www.jianshu.com/p/d1a07a13a76f
# docker pull mongo:4.2
# docker run -it --rm mongo:4.2 cat /etc/issue
# docker run -it --rm mongo:4.2 cat /etc/passwd
# docker run -it --rm mongo:4.2 mongo --version
三、创建相关安装目录
# mkdir -p /opt/mongoconfig
# mkdir -p /opt/mongoconfigdb
# mkdir -p /opt/mongodata
拷贝原始配置文件模板
# docker run -it --rm mongo:4.2 cat /etc/mongod.conf.orig > /opt/mongoconfig/mongod.conf
# cat /opt/mongoconfig/mongod.conf
三、初始化mongDB容器
# docker run -it -d \
--name mongodb \
-p 27017:27017 \
-v /opt/mongoconfigdb:/data/configdb \
-v /opt/mongodata:/data/db \
mongo:4.2 mongod
登录mongDB,创建管理员账号
# docker exec -it mongodb mongo
# db.createUser({ user: 'admin', pwd: 'Admin@123', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
修改配置文件,增加身份认证
# grep -Ev "^$|^#" /opt/mongoconfig/mongod.conf
###########################################
storage:
dbPath: /data/db
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /dev/stdout
net:
port: 27017
bindIp: 0.0.0.0
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled
###########################################
# vim /opt/mongoconfig/mongod.conf
重启mongoDB
# docker rm -f mongodb
# docker run -it -d \
--name mongodb \
-p 27017:27017 \
-v /opt/mongoconfigdb:/data/configdb \
-v /opt/mongodata:/data/db \
-v /opt/mongoconfig/mongod.conf:/etc/mongod.conf \
mongo:4.2 mongod -f /etc/mongod.conf
# docker exec -it mongodb mongo -u admin -p "Admin@123" --authenticationDatabase admin
# docker logs -f mongodb
四、将服务注册成系统服务
# docker rm -f mongodb
编写unit文件
# vim /etc/systemd/system/mongod.service
############################################################
[Unit]
Description=mongoDB Server
Documentation=https://www.mongodb.com
After=network-online.target docker.service
Requires=docker.service
[Service]
ExecStartPre=-/usr/bin/docker rm -f mongod
ExecStart=/usr/bin/docker run \
--name mongod \
-p 27017:27017 \
-v /opt/mongoconfigdb:/data/configdb \
-v /opt/mongodata:/data/db \
-v /opt/mongoconfig/mongod.conf:/etc/mongod.conf \
mongo:4.2 mongod -f /etc/mongod.conf
ExecStop=/usr/bin/docker stop mongod
LimitNOFILE=65535
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
############################################################
# systemctl daemon-reload
# systemctl start mongod.service
# systemctl enable mongod.service
# systemctl status mongod.service
五、参考
CentOS7.x上使用docker安装部署mongoDB
https://www.jianshu.com/p/cf73f9a6d2d8
mongodb 开启密码认证配置
https://wp.hellocode.name/?p=844
mongodb 开启认证方式
https://www.cnblogs.com/Knight7971/p/10149643.html