MongoDB (Docker安装)

10/25/2020 MongoDB

# Mongodb 在容器安装

  1. 下载镜像
docker pull mongo
  1. 查看本地是否有镜像文件
docker images
  1. 运行mongodb容器
docker run --name mongodb-server0 -v /data/mongodb0:/data/db -p 27017:27017 -d 镜像ID --auth
// or
docker run -itd --name mongo -p 27017:27017 mongo --auth
// -v后面的参数表示把数据文件挂载到宿主机的路径
// -p把mongo端口映射到宿主机的指定端口
// --auth表示连接mongodb需要授权
  1. 进入镜像
docker exec -it 镜像名 bash
  • 进入并为MongoDB添加管理员用户
docker exec -it 镜像名 mongo admin
  • 添加数据库用户
db.createUser({ user: 'guangju', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

尝试连接

db.auth('admin', '123456')

给数据库授权:

db.grantRolesToUser("admin", [ { role:"dbOwner", db:"admin"} ]) ;

授权得在用户登录之后才可以

  • 验证一下

浏览器中输入 localhost:27017 ,输出一行文字,代表数据库运行中和暴露出来了

参考 (opens new window)

# 远程连接数据库

  1. 查看docker容器的ip
docker inspect 容器名
// 输出内容里这个是容器内网ip  "IPAddress": "172.17.0.2",
  • 查看容器的信息
docker ps
  1. 修改 mongod.conf.orig 文件
vim /etc/mongod.conf.orig
// 将文件中的 bindIp:127.0.0.1 注释或修改为
    bindIp:0.0.0.0
  1. 到这里还是不能用远程工具连接数据库,mogodb 不支持ipv6

    • 方式一 在容器中的etc/hosts::1 localhost ip6-localhost ip6-loopback这一行删掉
    • 开启mongodbipv6
  2. 重启数据库或者mongodb容器,就可以在 Navicat 连接数据库了,要用容器的内网ip 大部分是 172.17.0.2 ,以查到的为准。

最后提交: 7/15/2022, 10:42:12 AM