目标:在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数据库可以打开,其他没授权的打不开。

 这样我们就可以在本机通过工具连接了,那要是局域网内其他电脑想要连接怎么办呢?

我先琢磨琢磨...告辞!

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐