docker入门实践-部署mongodb

1,215 阅读1分钟

一、下载mongodb镜像

docker pull mongo

默认下载的是latest版本,以上命令等于

docker pull mongo:latest

也可以下载指定版本

docker pull mongo:版本号
例如:docker pull mongo:3.2

二、创建mongodb容器

docker run --name dev-mongo -p 27017:27018 -d mongo:latest --auth --storageEngine wiredTiger

参数说明:

  • --name 指定容器的名称
  • -p 宿主机27017端口映射到容器暴露的27018端口
  • -d 容器在后台运行,并打印容器id
  • mongo:latest 指定镜像
  • --auth 打开mongdb的权限验证
  • --storageEngine 指定mongodb的存储引擎为wiredTiger

三、连接容器

docker exec -it dev-mongo /bin/bash mongo admin

参数说明:

  • -it 分配一个终端,来操作容器
  • /bin/bash 指定终端为bash
  • dev-mongo 上一步中指定的容器名
  • mongo admin 进去mongo命令行,并连接admin数据库

四、创建管理员用户

在mongo shell命令行中:
> db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
Successfully added user: {
    "user" : "jsmith",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

//验证是否添加成功
> db.auth("jsmith","some-initial-password")
> 1

五、创建普通用户

//使用管理员账号进入mongo
docker exec -it dev-mongo mongo admin -u jsmith -p some-initial-password
//创建dev数据库
> use dev;
//向dev数据库添加管理用户
> db.createUser({ user: 'admin-dev', pwd: 'admin-dev-password', roles: [ { role: "readWrite", db: "dev" } ] });

六、远程连接dev数据库,验证

mongo ip地址:27017/dev -u admin-dev -p admin-dev-password
进入mongo shell命令行,连接成功