查看是否已经安装了mongo镜像文件
如果没用安装就执行命令安装
docker pull mongo:latest
安装后执行命令
运行MongoDB容器
docker run -itd --name mongo -p 27017:27017 mongo --auth
–name mongo:对运行的mysql容器进行命名
-p 27017:27017 :映射容器服务的 27017端口到宿主机的 27017端口,外部主机可以直接通过 宿主机ip:27017访问到 MongoDB的服务。
mongo : 为本地镜像的名称 如果不是最新版本镜像 请使用 mongo:[版本号]
–auth:需要密码才能访问容器服务。
通过 docker ps 命令查看是否安装成功
接着使用以下命令添加用户和设置密码,并且尝试连接。
docker exec -it mongo mongo admin
创建一个名为 admin,密码为 123456 的用户。
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db:'admin'},"readWriteAnyDatabase"]});
尝试使用上面创建的用户信息进行连接。
db.auth('admin','123456')
后续连接的问题
mongodb://[username:password@]host1[:port1][/database][/[defaultauthdb][?options]]
mongodb😕/ 这是固定的格式,必须要指定。
username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登录这个数据库
host1 必须的指定至少一个host, 即IP地址,是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
port1 可选的指定端口,如果不填,默认为27017
/database 如果指定username:password@,连接并验证登录指定数据库。若不指定,默认打开 test 数据库。
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
使用客户端工具MongoDB Compass连接上mongo,如果连接不上,检查防火墙是否已经开放宿主机开放端口27017