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
设置容器以守护进程方式运行进入 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'}] })
客户端连接:
创建操作用户
验证之后还是做不了操作,因为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