Windows连接docker MongoDB
·
目标:在docker里安装MongoDB并且可以通过工具访问
安装MongoDB:
docker pull mongo:latest

查看镜像

运行MongoDB:
docker run -itd --name mongo -p 27017:27017 mongo --auth

-p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。(前面是宿主机,在Windows里就是虚拟机的端口,后面是容器的端口)
--auth:需要密码才能访问容器服务。
我们可以通过 docker ps 命令查看容器的运行信息:

0.0.0.0:27017>27017/tcp
指的是本地(也就是宿主机,Windows里的虚拟机)27017端口映射容器的27017端口
到这已经运行成功了
本地工具连接:
首先进入容器:
docker exec -it mongo bash
进入数据库管理:
mongo admin
有的可以直接进入:
docker exec -it mongo mongo admin
不过我试了我的不行,得分两步。

创建用户:
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
尝试连接:
db.auth('admin', '123456')

给数据库授权:
db.grantRolesToUser("admin", [ { role:"dbOwner", db:"admin"} ]) ;

授权得在用户登录之后才可以
然后退出容器:

重启容器:

查看虚拟机地址:

用工具连接:

可以看到授权了admin数据库可以打开,其他没授权的打不开。
这样我们就可以在本机通过工具连接了,那要是局域网内其他电脑想要连接怎么办呢?
我先琢磨琢磨...告辞!
更多推荐
所有评论(0)