1、新建 mogoDB存放文件夹
# 配置文件存放路径
mkdir -p /opt/idhub/mongodb/conf
# 日志文件存放路径
mkdir -p /opt/idhub/mongodb/log
# 数据库存放路径
mkdir -p /opt/idhub/mongodb/data
2、下载镜像
docker pull mongo:4.0.9
3、先以最简单方式启动镜像
docker run -d --name mongo mongo:4.0.9
4、进入容器,查看配置文件位置:
配置文件:/etc/mongod.conf.orig
docker exec -it mongo /bin/bash
# 进入容器后
cat /etc/mongod.conf.orig
exit;
5、复制docker容器中的配置文件 到 主机目录下
docker cp mongo:/etc/mongod.conf.orig /opt/idhub/mongodb/conf
# 重命名
cp ./mongod.conf.orig ./mongod.conf
6、停止并删除mongo容器
docker stop mongo
docker rm mongo
7、修改配置文件mongod.conf
logappend=true # 日志输出方式,日志append而不是overwrite
bindIp: 0.0.0.0 # 开放IP
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
8、编写mongo 的docker-compose文件mongo-docker-compose.yml
# ports 列表将主机端口映射到容器
# 挂载主机目录
# docker配置文件位置:/data/configdb/mongod.conf
version: '3'
services:
#nginx setting
nginx:
container_name: mongo
image: mongo:4.0.9
ports:
- "27017:27017"
volumes:
- /opt/idhub/mongodb/conf/mongod.conf:/data/configdb/mongod.conf
- /opt/idhub/mongodb/log/mongod.log:/var/log/mongodb/mongod.log
- /opt/idhub/mongodb/data:/var/lib/mongodb
network_mode: bridge
restart: always
9、登录,创建用户
docker exec -it mongo /bin/bash
mongo
use admin
db.createUser({user: "root", pwd: "s21^34ah2pnG3k6GG_aG", roles: [{role: "root", db: "admin"}]})
db.createUser({user: "idis_user", pwd: "Teleinfo-88", roles: [{role: "dbOwner", db: "idis_lhs"}]})
exit;
10、启用认证,修改配置文件mongod.conf,增加下面配置项
# 启用认证
security:
authorization: enabled
重启容器,测试
登录验证
mongo
> use admin
switched to db admin
> db.auth('root','s21^34ah2pnG3k6GG_aG')
1
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> use local
switched to db local
> show collections
startup_log
> db.startup_log.find()