![2466ebcad2ae5d1b3ef850d3384ae28e.png](https://img-blog.csdnimg.cn/img_convert/2466ebcad2ae5d1b3ef850d3384ae28e.png)
目标
使用 Docker 部署 MongoDB ,使远程服务器上能本地访问。
远程服务器设置
首先,需要使用 Docker 拉取 MongoDB 官方镜像。
docker pull mongo
其次,为了能在远程执行访问,需要给 MongoDB 设置密码,赋予访问权限。需要
在执行如下镜像运行命令:
docker run -v /root/data/test_mongo:/data/db -v /root/data/test_mongo_config:/data/configdb -p 27017:27017 -d mongo --auth
在 docker 容器内登陆客户端,增加新的用户:
docker exec -it e18d3f0074d7 bash
use admin
db.auth("admin", "admin123")
db.createUser(
{
user: "admin",
pwd: "admin123",
roles: [{role: "userAdminAnyDatabase",db:"admin"}]
}
)
db.system.users.find()
exit
上面为用户数据库 admin 添加了用户,
下面需要给准备操作的数据库添加专用的访问认证:
use demo
db.createUser(
{
user:"ybl",
customData:{description:"test user_1"},
pwd:"926055",
roles:[{"role":"readWrite","db":"demo"}]
}
)
返回添加成功的信息,就说明添加好了。
此时,远程服务端配置完毕。
如需登陆验证可在远程服务器上执行:
docker exec -it 7f60db5e10e2 mongo
如需进入容器中查找文件,执行:
docker exec -it db40112ae225 sh
本地客户端设置
可访问的方式有两种:
方式一:在本地使用 mongo 进行访问:
./mongo 192.168.1.200:27017/dbname -u user -p password
方式二: 通过 Python 进行访问:
import pymongo
mongodb_client = pymongo.MongoClient('mongodb://admin:admin123@140.143.17.80:27017')
dblist = mongodb_client.list_database_names()
mongodb = mongodb_client['alltext']
collist = mongodb.list_collection_names()
print(dblist)
print(collist)
MongoDB 中存储的内容在什么位置?
在外部挂载的文件夹下,此处为 /root/db。