docker开发机部署mongo并连接

257 阅读1分钟

1、开发机安装docker,注意开发机的版本,我的是CentOS

2、下载mongo镜像

3、运行一个新的容器 docker run --name mongodb -v ~/mongo:/data/db -p 27017:27017 -d mongo。

上述命令将创建一个名为 mongodb 的容器并启动一个 Bash 会话。该示例中详细解读如下所示:

--name 为容器指定名称,在本例中的容器名称为 mongodb;

-v 给容器挂载存储卷,挂载到容器的某个目录, 顺序:主机:容器

-d 指定容器运行于前台还是后台,默认为false

-p 指定容器暴露的端口

最后是镜像的名称mongo

4、在一个容器上执行命令 docker exec -it mongodb bash

5、输入mongosh,进入mongo

user admin
db.createUser({user: "admin",pwd: "pwd",roles: [ { role: "userAdminAnyDatabase", db: "admin"}]})

在admin创建一个admin用户,可以用该用户创建普通用户

想要通过在什么数据库中操作,就需要去对应的库中创建用户 如,

db.createUser({user: 'user2',pwd: 'user2',roles: [{role: "readWrite", db: "demo"}]})

在demo这个DB上创建了一个普通的读写用户user1

6、以bash进入mongo容器

docker exec -it mongodb bash
#更新源
apt-get update
# 安装 vim
apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig
# 修改bindIP为0.0.0.0
bindIp: 0.0.0.0

7、后面就可以通过上面创建的用户进行连接了。 如,通过上面创建的user2连接demo这个db,uri为:

mongodburl: mongodb://user3:user3@127.0.0.1:27017/demo?serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&authSource=demo&authMechanism=SCRAM-SHA-1&3t.uriVersion=3&3t.connection.name=dockermongo&3t.ssh=true&3t.sshAddress=10.10.112.60&3t.sshPort=22&3t.sshAuthMode=password&3t.sshUser=开发机用户名&3t.sshPassword=开发机密码&3t.alwaysShowAuthDB=true&3t.alwaysShowDBFromUserRole=true