经过两天的折腾,终于实现了自己想要的效果,就是通过docker-compose 部署最新的mongodb replicaSet, 主要是为了测试 4.2 最新的多文档事务,下面将整个步骤分享一下:

docker-compose.yml 内容如下:

version: '3.4'

services:
mongo:
container_name: mongodb
image: mongo:latest
hostname: mongodb
volumes:
- /data/mongodb/mongod.conf:/etc/mongod.conf
- /data/mongodb/data/db/:/data/db/
- /data/mongodb/data/log/:/var/log/mongodb/
- /data/mongodb/initdb.d/:/docker-entrypoint-initdb.d/
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=123456
ports:
- "27017:27017"
healthcheck:
test: test $$(echo "rs.initiate().ok || rs.status().ok" | mongo -u root -p '123456' --quiet) -eq 1
interval: 10s
start_period: 30s
command: ["--replSet", "rs0", "--bind_ip_all"]

  

说明:

1、 /data/mongodb/mongod.conf  文件需要提前建好,内容如下,主要是启用验证,如果不挂载这个文件,replicaset 是在裸奔的

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data.
storage:
dbPath: /data/db
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: 127.0.0.1 # how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo security:
authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:

  

2、 /data/mongodb/initdb.d  此目录下的脚本是用来初始化的,前提是没有任何数据前执行,我在该目录下创建了create-app-user.sh 来初始化自定义数据库【yourdb】以及用户名【yourAdmin】密码【123456】,内容如下:

#!/usr/bin/env bash
echo "Creating mongo users..." mongo admin -u root -p << EOF
db.createUser({user: 'admin', pwd: '', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});
db.grantRolesToUser(
"admin",
[ "clusterAdmin" ]
);
EOF mongo admin -u admin -p << EOF
use yourdb
db.createUser({user: 'yourdbAdmin', pwd: '', roles:[{role:'readWrite',db:'yourdb'}]})
EOF
echo "Mongo users created for yourdb."

3、可以用monog client 测试登录:

mongo -u root -p 123456

 登录成功后,是这个样子滴:

执行 show dbs; 可以看到自己建了的数据库,测试自己建了的用户和密码,可以使用:

mongo -u yourdbAdmin -p 123456 --authenticationDatabase yourdb

  

最新文章

  1. SQL SERVER 中的提示
  2. oracle中字符串连接用||
  3. Node.js intro
  4. Linux系统启动流程及安装命令行版本
  5. Jquery--array
  6. Atomikos 中文说明文档【转】
  7. 在ProgressBar上加文字----显示百分比的进度条
  8. Latin1的所有字符编码
  9. iOS摇一摇功能、震动功能、简单的摇动动画、生成二维码图片与发送短信等几个功能
  10. linux搭建apache服务并修改默认路径
  11. @SpringBootApplication 组合注解包含哪些注解及作用
  12. Postman中x-www-form-urlencoded请求K-V的ajax实现
  13. NOI2019 SX 模拟赛 no.5
  14. jstl 与 el表达式
  15. keras模型的保存与重新加载
  16. MySQL Session--批量KILL会话
  17. iOS源文件工程打包
  18. urlparse基本运用
  19. 开发常见错误之 :Missing artifact com.sun:tools:jar 1.7.0
  20. iOS - 工程文件冲突 - 解决方式

热门文章

  1. Linux学习:使用 procrank 测量系统内存使用情况
  2. kotlin 类的委托
  3. DriverManager
  4. ROS 常用命令
  5. 从零搭建配置Cuckoo Sandbox
  6. Excel导入工具类
  7. 关于运维之故障复盘篇-Case Study
  8. 以rpm安装包的方式安装MySQL
  9. 使用请求包装器RequestWrapper 对博客内容进行编码
  10. BootStrap Table方法使用小结