What is MongoDB?
MongoDB是一个跨平台的面向文档的数据库。被分类为NoSql数据库,避开传统的基于表关系的数据结构,支持具有动态模式的Json类文档使数据在某些类型的应用程序中的集成更加容易和快速。(翻译官网的解释。)
How to use this image
docker中如何开启一个MongoDB呢?我们通常有两种方法,利用DockerFile,或者拉取镜像的方法,今天小编使用的是直接拉取镜像的方法,不过仍需要说明的是,这两种没有本质上的区别。
pull images
首选,从docker hub仓库拉取一个镜像
docker pull mongo
这是仓库中有的镜像的版本,我们可以查看一下,默认我们pull下来的都是最新的。
run images
在我们启动容器之前,可以查看仓库中已经pull下来的镜像:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c73c7527c03a 7 weeks ago 412MB
mongo latest 6833171fe0ad 7 weeks ago 359MB
有了镜像之后我们就可以使用了,Docker 镜像是 Docker 容器运行时的只读模板,这就告诉我们,需要启动一个容器,代码如下:
docker run --name=mongotest -p 27017:27017 -v $PWD/mongoReflection/data:/data/db -v $PWD/mongoReflection/config:/data/configdb -d 6833171fe0ad
命令说明:
–name:容器的名称
-p: 端口映射,将容器的端口,映射到主机上
-v:映射,挂载,将容器中内容,如数据库和配置文件,映射到一个文件中相当于做了一个备份,这里是将mongo的data映射到mongoReflection/data下面
$PWD:当前文件目录,例如我们以root进入,$PWD就表示root的目录。
-d:后台运行
其他命令:
-e 设置环境变量,与在dockerfile env设置相同效果
进入mongoDB
我们可以查看新启动的容器是否正常启动:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6abefc6d1d91 6833171fe0ad "docker-entrypoint..." 7 seconds ago Up 4 seconds 0.0.0.0:27017->27017/tcp mongotest
容器的名称为mongotest,我们进入该容器中:
[root@localhost ~]# docker exec -it mongotest bash
root@6abefc6d1d91:/# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6
Welcome to the MongoDB shell.
以上就是我们看到的mongo的版本,以及成功进入的信息。
写在后面
这里我们docker中配置MongoDB就结束了,docker的优点我们不断的体会吧。