docker安装mongodb

docker pull mongo

docker run -p 27017:27017 -v $PWD/data:/data/db -v $PWD/conf/mongodb.conf:/etc/mongodb.conf --name mymongodb -d mongo --auth

在上面的命令中,几个命令参数的详细解释如下:
-p 指定容器的端口映射,mongodb 默认端口为 27017
-v 为设置容器的挂载目录,这里是将<LocalDirectoryPath>即本机中的目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
--name 为设置该容器的名称
-d 设置容器以守护进程方式运行
 
为了安全,我们要mongodb设置密码:
 
-name mymongodb -d mongo  --auth
需要密码才能访问mongodb服务。
 
 

进入 mongo 交互模式

1. docker exec -it <CONTAINER NAME> mongo 数据库名称

 https://www.jianshu.com/p/aa7a7f4e2527

接着使用以下命令添加用户和设置密码,并且尝试连接。

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

创建一个role为root的
db.createUser({ user:'admin', pwd:'admin', roles:[{role:'root',db:'admin'}] })

添加管理用户
mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase

客户端连接:
> use admin
> db.auth("admin","123456")   #认证,返回1表示成功
 
 

创建操作用户
验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,
> use mydb
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
7、使用创建的用户root登录进行数据库操作:
[root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
> db
mydb
> use mydb
switched to db mydb
> show collections
然后就可以进行增删改查各种数据操作...


admin这个账号只能用作客户端远程连接,操作的,如果程序里想要连接各个集合,要针对各个库在去单独设置账号密码,

程序里就设置新的账号密码



https://www.runoob.com/docker/docker-install-mongodb.html

MongoDB 的 Docker 常用命令

# 查看正在运行的容器

docker container ls

# 查看所有容器

docker container ls -a

# 指定 CONTAINER ID 停止容器

docker stop <CONTAINER ID>

# 指定容器名称停止容器

docker stop <CONTAINER NAME>

# 指定容器 CONTAINER ID 启动容器

docker start <CONTAINER ID>

# 指定容器名称启动容器

docker start <CONTAINER NAME>

# 指定容器 CONTAINER ID 重启容器

docker restart <CONTAINER ID>

# 指定容器名称重启容器

docker restart <CONTAINER NAME>

进入 mongo 交互模式

docker exec -it <CONTAINER NAME> mongo 数据库名称


 https://zhuanlan.zhihu.com/p/81496897?from_voters_page=true
 
配置文件:
 
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  # 更改日志目录
  path: /tmp/mongod.log

# Where and how to store data.
storage:
  # 更改数据目录
  dbPath: /data/db/
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
#  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
# 修改端口
net:
  port: 27017
  # 因为127.0.0.1只能在本机访问,改后通过本机的IP就能访问服务
  bindIpAll=true
  #kbindIp: 0.0.0.0  # Enter 127.0.0.1,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

# 开启权限校验
security:
  authorization: enabled
  
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:Configuration File Options# mongod.conf
 
原文地址:https://www.cnblogs.com/youxin/p/12996263.html