docker安装mongodb过程

  1. docker pull mongo:4.0.10 (2019-07-22 最新4.0.10)

  2. 创建db目录 和 mongo.conf
    mongo.conf 内容:

bind_ip_all=true
port=27017
dbpath=/data/db
logappend=false
auth=true
  1. docker run -d --name <你自己docker容器命名>
    -p 27017:27017
    -v <你本地挂载db目录>:/data/db/ \
    -v <你本地mongo.conf目录>:/etc/mongo/ \
    -e MONGO_INITDB_ROOT_USERNAME=你的用户名
    -e MONGO_INITDB_ROOT_PASSWORD=你的密码
    mongo --config /etc/mongo/mongo.conf

我的例子
我的docker容器命名 mongo-qin
我的db 目录 :/usr/local/docker/mongo/db
mongo.conf 位置: /usr/local/docker/mongo/etc/mongo.conf

docker run -d --name mongo-qin \
	-p 27017:27017 \
	-v /usr/local/docker/mongo/db:/data/db/ \
	-v /usr/local/docker/mongo/etc:/etc/mongo/ \
	-e MONGO_INITDB_ROOT_USERNAME=root \
	-e MONGO_INITDB_ROOT_PASSWORD=373616885 \
	mongo --config /etc/mongo/mongo.conf
  1. 进入容器docker
docker exec -it mongo-qin /bin/bash
  1. 连接admin
    mongo ip:port/dbname -u 用户名 -p 密码 --authenticationDatabase admin
    我的例子:
mongo 127.0.0.1:27017/admin -u root -p 373616885 --authenticationDatabase admin
  1. 认证admin
    先 use admin 然后 db.auth 认证 成功 1
use admin

db.auth('root','373616885')

查看用户:
db.system.users.find()
  1. 创建自己的db和用户
use mongo

db.createUser({user:"mongo",pwd:"373616885",roles:[{role:"readWrite",db:"mongo"}]}) 

db.auth('mongo','373616885')
  1. 愉快退出然后本机连接docker遇到问题:
mongo 172.19.241.16:27017/admin -u root -p 373616885 --authenticationDatabase admin

MongoDB shell version: 2.6.10
connecting to: 172.19.241.16:27017/admin
2019-07-22T22:34:35.755+0800 Error: 2 { ok: 0.0, errmsg: "Auth mechanism not specified", code: 2, codeName: "BadValue" } at src/mongo/shell/db.js:1287
exception: login failed
  1. 解决:原文:https://blog.csdn.net/pcjdpcq/article/details/84141540
    问题:MongoDB server 版本是4.0.10,客户端版本是 2.6.10
删除 之前的 mongodb-clients
sudo apt-get purge mongodb-clients
安装了整个 MongoDB
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
  1. 再次连接愉快的玩耍
mongo 172.19.241.16:27017/admin -u root -p 373616885 --authenticationDatabase admin

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Docker安装MongoDB可以按照以下步骤进行操作: 1. 创建一个目录用于存放MongoDB的数据文件,比如/data目录。这个目录会被映射到Docker容器中的/data/db目录,以便保留数据库文件。 2. 生成启动文件start.sh。如果不需要账户密码认证,使用以下命令: ```bash cat <<EOF > start.sh #!/bin/bash MONGODB_DIR=`pwd` docker stop mongodb docker rm mongodb docker run -d \ --name mongodb \ --restart always \ --privileged \ -p 27017:27017 \ -v \${MONGODB_DIR}/data:/data/db \ mongo:4.2.2 EOF ``` 如果需要账户密码认证,可以使用以下命令: ```bash cat <<EOF > start.sh #!/bin/bash MONGODB_DIR=`pwd` docker stop mongodb docker rm mongodb docker run -d \ --name mongodb \ --restart always \ --privileged \ -p 27017:27017 \ -v \${MONGODB_DIR}/data:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=admin \ -e MONGO_INITDB_ROOT_PASSWORD=admin123 \ mongo:4.2.2 mongod --auth EOF ``` 3. 停止和删除之前的MongoDB容器,可以使用以下命令: ```bash docker stop mongodb && docker rm mongodb ``` 4. 使用Navicat等工具连接MongoDB数据库进行管理。 总结起来,安装DockerMongoDB可以分为以下几个步骤: 1. 创建一个用于存放数据库文件的目录。 2. 生成启动文件start.sh,根据是否需要认证选择不同的命令。 3. 停止和删除之前的MongoDB容器。 4. 使用Navicat等工具连接MongoDB数据库进行管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker安装MongoDB](https://blog.csdn.net/qq_38983728/article/details/87898956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值