Portainer中Mongo4的Command配置

最近用旧笔记本搭建了一个NAS系统,想使用Docker搭建一个即时聊天服务器Rocket.Chat。Rocket.Chat使用的是Mongo数据库,并必须启动mongo副本集,但是在Docker安装4.0以上版本的Mongo时总是无法执行配置文件启动(配置文件中可以设置副本集),网上教程大部分是4.0以下版本,本人用的Portainer服务管理Docker容器

参照网上教程上的docker命令如下

docker run \
-itd \
-e PGID=1000 \
-e PUID=1000 \
--name='mongodb' \
-e TZ="Asia/Shanghai" \
-p '27017:27017/tcp' \
-v '/mnt/wd1t_0/portainerApp/mongodb/data':'/data/db':'rw' \
--hostname mongodatabase 'mongo' \
-f /data/db/mongod.conf
复制代码

其中映射的mongod.conf文件如下

# 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: 127.0.0.1
  
# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
security:
  authorization:enabled
#operationProfiling:
replication:
  replSetName:rs01
  
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
复制代码

这样启动不起来而且docker日志没有报错,于是进入容器中查看mongo的日志/var/log/mongodb/mongod.log 显示
{"error":"NonExistentPath: Data directory /var/lib/mongodb not found.

这应该是mongo 4以上版本的dbPath: /var/lib/mongodb有所变动
然后看了一下Portainer关于启动命令是这样的

image.png

而正常启动只需要一个‘mongod’命令即可,由于我只需要配置副本集启动即可,于是就改成了

image.png

然后就可以正常启动了

image.png 接着建立rocketchat用户

use admin
db.createUser({user: "root",pwd: "qqwweerr",roles: [{ role: "root", db: "admin"}]})
db.createUser({user: "rocketchat",pwd: "qqwweerr",roles:[{role: "readWrite", db: "local" }]}) 
use rocketchat
db.createUser({user: "rocketchat",pwd: "qqwweerr",roles:[{ role: "dbOwner",db: "rocketchat" }]})
复制代码

最后终于Rocket.chat启动起来了

image.png

image.png

猜你喜欢

转载自juejin.im/post/7062748235751751693