docker安装mongodb

11 篇文章 0 订阅
本文详细介绍了如何使用Docker部署MongoDB,包括创建单机版MongoDB容器,设置数据目录,创建用户和授权,开启外网访问,并提供了修改配置文件以允许外部访问的方法。此外,还简要提到了集群版MongoDB的部署概念。
摘要由CSDN通过智能技术生成

拉取镜像

docker pull mongo:latest

单机版

创建本地数据文件夹

mkdir /usr/local/mongo
mkdir /usr/local/mongo/data

创建mongo容器

docker create --name mongo-single -v /usr/local/mongo/data:/data/db -p 27017:27017 mongo:latest --auth

参数说明:
-v:挂着数据盘
–auth:需要密码才能访问容器服务
-p:端口映射

启动容器

docker start mongo-single

添加用户和设置密码

创建一个名为 admin,密码为 123456 的用户:

# 进入容器
docker exec -it mongo-single /bin/bash
# 进入 mongo
mongo 
# 切换到 admin 数据库
> use admin
# 创建用户,同时拥有管理员权限
>  db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

内建的角色说明
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system

尝试使用上面创建的用户信息进行连接。

> db.auth('admin', '123456')

开启外网访问

与redis的类似,默认是只允许本机的客户端访问的;需要修改配置文件,把bindIp : 127.0.0.1 注释掉
修改 mongo 配置文件

# 进入容器
docker exec -it mongo-single /bin/bash
# 在容器中更新源并且安装编辑器 vim,不然没办法修改mongod.conf.orig配置文件
apt-get update
apt-get install vim
# 改配置
vim /etc/mongod.conf.orig

mongod.conf.orig默认的配置内容:

# 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:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

也可以提前准备好配置过的 mongod.conf.orig,在创建容器的时候挂载上去;就不用进入容器修改默认的配置文件了

docker create --name mongo-single -v /usr/local/mongo/data:/data/db -v /usr/local/mongo/mongod.conf.orig:/etc/mongod.conf.orig -p 27017:27017 mongo:latest --auth

开放端口

firewall-cmd --add-port=27017/tcp --permanent 

重载入添加的端口:

firewall-cmd --reload 

集群版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值