dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2198
  • 铜币14124枚
  • 威望6134点
  • 银元155个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:1432回复:0

docker 创建 mongodb 容器

楼主#
更多 发布于:2016-10-19 11:04
目标
使用 docker 创建一个 mongodb 容器;

环境
centos 7.2 amd64
docker 1.10.3

操作步骤
1. 下载镜像
docker pull mongo:3

2. 创建容器
注意,由于**容器特性**我们需要为 `mongo`容器指定持久化的数据卷,使用`-v`参数选项。
docker run -tid --name mongo3 \
    -e TZ=Asia/Chongqing \
    -v mongo-data:/data/db \
    mongo:3 --auth

如果你希望使用宿主机的端口,方便外部访问到`mongo`服务,需要使用`-p` 参数选项。
docker run -tid --name mongo3 \
    -e TZ=Asia/Chongqing \
    -p 27017:27017 \
    -v mongo-data1:/data/db \
    mongo:3 --auth

如果你希望创建容器时,自动加入认证信息,可以使用下面的环境变量。
docker run -tid --name mongo3 \
    --restart=always \
    -e TZ=Asia/Chongqing \
    -e MONGO_INITDB_ROOT_USERNAME=root \
    -e MONGO_INITDB_ROOT_PASSWORD=mypassword \
    -p 27017:27017 \
    -v mongo-data2:/data/db \
    mongo:3 --auth
更多环境变量请参考: https://hub.docker.com/_/mongo

3.# 登录容器
# 登陆 mongodb
docker exec -ti mongo3 mongo admin
MongoDB shell version v3.6.16
#省略...

>

4.# 验证容器
尝试在`mongo`中创建一个库并配置授权用户。
# 查看当前库
> db
admin

# 超级用户
> db.createUser({user:'root',pwd:'password', roles:[{role:'userAdminAnyDatabase', db:'admin'}]})
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

# 认证用户
> db.auth('root','password')
1
# 返回值 0:代表授权失败, 1:代表授权成功

# 切换库
> use demo
switched to db demo

# 授权用户
> db.createUser({user:'demo',pwd:'password',roles:[{role:"dbAdmin",db:"demo"}]})
Successfully added user: {
    "user" : "demo",
    "roles" : [
        {
            "role" : "dbAdmin",
            "db" : "demo"
        }
    ]
}
更多 mongo shell 命令 请参考 http://zongming.net/read-1226


参考MongoDB 3.2 创建用户
#
欢迎关注微信公众号: 运维录
游客

返回顶部