docker部署mongodb

docker部署mongodb

拉取镜像

docker pull mongo

启动mongo(docker run和docker compose)

  • docker run

--auth:需要密码才能访问容器服务。
-e MONGO_INITDB_ROOT_USERNAME:设置用户名
-e MONGO_INITDB_ROOT_PASSWORD:设置密码

docker run --restart=always --name mongodb -v ~/docker/mongo:/data/db -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=Mongo,123456. mongo --auth
  • docker compose
version: '3.9'
services:
mongo:
command: '--auth'
image: mongo
environment:
- 'MONGO_INITDB_ROOT_PASSWORD=Mongo,123456.'
- MONGO_INITDB_ROOT_USERNAME=admin
ports:
- '27017:27017'
volumes:
- './data:/data/db'
container_name: mongodb
restart: always

进入容器,创建用户

  • 进入容器
    docker exec -it mongodb mongosh admin

  • 使用启动时设置的账号密码认证db.auth("用户名","密码")
    db.auth("admin","Mongo,123456.")

  • 创建一个名为 admin2,密码为 123456 的用户

db.createUser({ user:'admin02',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

开启远程连接

  • 推出容器 exit
  • 进入容器bash docker exec -it mongodb bash
  • 更新源 apt-get update
  • 安装vim apt-get install vim -y
  • 修改mongo配置文件 vim /etc/mongod.conf.orig
    将其中的 bindIp: 127.0.0.1 注释掉# bindIp: 127.0.0.1
    或者改成bindIp: 0.0.0.0
    即可开启远程连接

mongodb备份

在连接mongo时,使用参数 --authenticationDatabase,会认证 -u 和 -p 参数指定的账户和密码。如果没有指定验证数据库,mongo使用连接字符串中指定的DB作为验证数据块。

mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -u admin -p Mongo,123456. -d xxx -o /data/bak

mongodb恢复数据

在连接mongo时,使用参数 --authenticationDatabase,会认证 -u 和 -p 参数指定的账户和密码。如果没有指定验证数据库,mongo使用连接字符串中指定的DB作为验证数据块。

mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -u admin -p Mongo,123456. -d xxx --drop /data/ehr_data/xxx
posted @   武胜造纸农  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示