Docker 安装 MongoDB

Docker Centos

# 一。搜索镜像

查找 Docker Hub 上的 mongo 镜像。

1
2
3
4
5
[root@localhost ~]# docker search mongo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mongo MongoDB document databases… 5839 [OK]
mongo-express Web-based MongoDB admin… 441 [OK]
tutum/mongodb MongoDB Docker image… 226 [OK]

# 二。拉取 MongoDB 镜像

拉取 Docker Hub 上的 mongo 镜像。

1
[root@localhost ~]# docker pull mongo

# 三。查看本地镜像列表

查看 MongoDB 镜像是否拉取成功。

1
2
[root@localhost ~]# docker images | grep mongo
mongo latest ed7f5dd724de 3 days ago 411MB

# 四。创建存储目录

创建 MongoDB 持久化文件目录。

1
[root@localhost ~]# mkdir -p /home/data/mongo/data

# 五。启动容器

options 说明:
–restart=always: 重启策略
- d: 后台运行容器,并返回容器 ID
-p: 端口映射,格式为:主机 (宿主) 端口:容器端口
–name: 为容器指定一个名称
- v: 给容器挂载存储卷,挂载到容器的某个目录

1
2
3
[root@localhost ~]# docker run --restart=always -p 27017:27017 --name mongo -v /home/data/mongo/data:/data/db -d mongo --auth
# 启动后的信息
080d8b37538e6818f060e164c9be7ecf290b9c7af9ef7d964548a5a868105c41

# 六。配置 MongoDB 权限

以 admin 用户身份进入 mongo
命令: docker exec -it 容器 ID mongo admin

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost data]# docker exec -it 4260bae9e49d mongo admin
> db.createUser({user: 'admin', pwd: '123456', roles: [{role: "root", db: "admin"}]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> exit;

# 七。测试是否 OK

MongoDB 身份认证

1
2
3
4
[root@localhost data]# docker exec -it 4260bae9e49d mongo admin
> db.auth("admin", "123456");
1
> exit;