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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)