原创, 服务器

Docker部署mongodb后创建数据库并授权用户

使用Docker部署mongodb

#1. 建立独立的网络, 如果需要跟已存在的容器在一个网络,则不需要在建了
docker network create -d bridge --gateway 172.22.0.1 --subnet 172.22.0.0/16 mynet

# 创建容器
docker run --name mongo --network mynet \
    --restart=always \
    -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
    -e MONGO_INITDB_ROOT_PASSWORD=yourpass \
    -v /data/mongo/data:/data/db \
    -v /data/mongo/logs:/var/log/mongodb \
    -v /data/mongo/conf/mongod.conf:/etc/mongod.conf \
    -p 27017:27017 \
    -d mongo --auth

mongod.conf 配置如下, 也是默认配置,可以随便生成的容器,将这个文件考出来映射,方便以后修改

systemLog:
   destination: file
   path: "/var/log/mongodb/mongod.log"
   logAppend: true
storage:
   journal:
      enabled: true
processManagement:
   fork: true
net:
   bindIp: ::,0.0.0.0
   port: 27017
   bindIpAll: true
setParameter:
   enableLocalhostAuthBypass: false

登录mongo

进入mongo容器
docker exec -it mongo /bin/bash
登录mongo

mongosh -u mongoadmin

创建数据库,或者使用现有数据库
use new_db_or_exists_db
db.createUser({user:"username",pwd:"Password",roles:[{role: "readWrite", db: "new_db_or_exists_db"}], mechanisms: ["SCRAM-SHA-1"]})
客户端使用的数据库配置
    mongodb:
      host: $mongodb_server_ip
      port: 27017
      authentication-database: new_db_or_exists_db
      username: username
      password: Password
      database: new_db_or_exists_db

先记录到这。

(373)

Related Post