小菜鸟
分类: 虚拟化
2016-04-13 11:37:20
背景:
根据需要,我需要安装一个mongoDB数据库,并且需要通过docker镜像作为容器运行这个 mongoDB 数据库
步骤:
1 下载镜像
首先从 docker hub 下载 mongoDB 的 docker 镜像
使用 docker search 命令查看有哪些可以下载的镜像
1
2
3
4
5
|
[root@bogon test]# docker search mongodb
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/tutum/mongodb MongoDB Docker image – listens in port 2... 119 [OK]
docker.io docker.io/frodenas/mongodb A Docker Image for MongoDB 8 [OK]
docker.io docker.io/waitingkuo/mongodb MongoDB 2.4.9 4 [OK]
|
这里我下载的是第二个:docker.io/frodenas/mongodb 这个镜像
使用docker pull 下载:
docker pull docker.io/frodenas/monodb
2 从镜像启动一个运行 mongoDB 的容器
To run the image and bind to host port 27017:
1
2
|
[root@bogon gowiki]# docker run -d --name mongodb -p 27017:27017 docker.io/frodenas/mongodb
f2bcffc53168fb40ce445e7a0c4cf40ebc382651c958d2cd8fe8d9b2282d6191
|
使用docker ps 可以产看是否启动
1
2
3
|
[root@bogon gowiki]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2bcffc53168 docker.io/frodenas/mongodb "/scripts/run.sh " 11 seconds ago Up 10 seconds 0.0.0.0:27017->27017/tcp, 28017/tcp mongodb
|
这个镜像默认启动的时候会创建出一个默认的mongoDB用户和密码,以及一个默认的数据库
可以使用 docker logs 查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@bogon gowiki]# docker logs f2bcffc53168
...
Successfully added user: {
"user" : "mongo",
"roles" : [
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
}
]
}
====================================================
MongoDB User: "mongo"
MongoDB Password: "POmt28NDaals9ACs"
MongoDB Database: "admin"
MongoDB Role: "dbAdminAnyDatabase"
====================================================
|
参考链接:
3 连接
现在,一个在容器作为守护进程运行的 mongoDB 容器已经成功运行,并且容器的监听端口
27017绑定到了宿主机的27017端口。
首先进入容器。
1
2
|
[root@bogon gowiki]# docker exec -it f2bcffc53168 /bin/bash
root@f2bcffc53168:~#
|
如果想要在宿主机命令行连接到数据库可以在容器内执行命令:
1
2
3
4
|
root@f2bcffc53168:~# mongo
MongoDB shell version: 3.0.7
connecting to: test
Welcome to the MongoDB shell.
|
创建数据库:
1
2
|
> use mongo
switched to db mongo
|
use 命令的用法是,切换数据库。如果指定名称的数据库不存在,则会创建出此数据库。
查看数据库
1
|
> show dbs
|
到这里就可以自由的操作 mongoDB 数据库了。更丰富的操作指令网上教程很多。可自己查找。