docker中安装mongo3.2
Posted 涂宗勋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker中安装mongo3.2相关的知识,希望对你有一定的参考价值。
今天在虚拟机中用docker安装了mongo最近版和mongo3.2,旨在巩固docker的使用,也为了后续mongodb的一些技术验证。
相对于最新版,指定3.2版本的安装会有一些细节不太一样,再考虑到实际应用中可能指定版本的需求更多一些,因此这里仅记录3.2的安装验证过程,以备忘。
镜像拉取
使用docker的第一步是启动docker,启动以后可以先单独拉取镜像,也可以使用run命令,run的时候如果没有找到镜像,也会自动取下载。但是这里为了巩固docker的操作,还是选择分开执行拉取和运行。
镜像拉取操作如下:
docker image pull mongo:3.2
拉取过程中会有相应的日志输出,最终日志结果类似下边这样:
3.2: Pulling from library/mongo
a92a4af0fb9c: Pull complete
74a2c7f3849e: Pull complete
927b52ab29bb: Pull complete
e941def14025: Pull complete
be6fce289e32: Pull complete
f6d82baac946: Pull complete
7c1a640b9ded: Pull complete
e8b2fc34c941: Pull complete
1fd822faa46a: Pull complete
61ba5f01559c: Pull complete
db344da27f9a: Pull complete
Digest: sha256:0463a91d8eff189747348c154507afc7aba045baa40e8d58d8a4c798e71001f3
Status: Downloaded newer image for mongo:3.2
docker.io/library/mongo:3.2
查看镜像
镜像拉取完后,可以查看本地镜像库进一步验证,命令如下:
docker images
执行结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest c1a14d3979c5 9 days ago 691MB
hello-world latest d1165f221234 7 months ago 13.3kB
mongo 3.2 fb885d89ea5c 2 years ago 300MB
由于我在安装docker时为了测试拉取过一个hello-world
,并且在安装mongo3.2之前先安装了最新版,因此可以看到镜像库中当前有三个镜像。
运行
镜像拉取之后就可以运行镜像启动容器,命令如下:
docker run -itd --name mongo32 -p 27018:27017 mongo:3.2 --auth
上边命令省略了contaner
参数,也可以使用docker container run -itd --name mongo32 -p 27018:27017 mongo:3.2 --auth
。
这个命令的意思是,后台启动一个容器名称为mongo32
的容器,使用镜像名称为mongo
同时tag为3.2
的镜像,启动后容器内程序的端口是27017
,映射到外部机器的端口是27018
,同时开启用户验证。
查看运行的容器
docker运行容器的时候不一定都是成功的,可以查看运行中的容器,如果执行了运行命令,但是在运行的容器中查不到,可能就是启动失败,需要查日志。查看运行容器命令如下:
docker container ls
执行结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f4d2c6bf4bf mongo:3.2 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:27018->27017/tcp, :::27018->27017/tcp mongo32
创建mongo用户名和密码
上边启动的时候开启了用户验证,但是现在还没有用户名和密码,所以需要创建和设置mongo用户名密码,先执行docker命令进入mongo shell中:
docker exec -it mongo32 mongo admin
然后在mongo shell中创建一个用户名并设置密码:
db.createUser( user:'admin',pwd:'123456',roles:[ role:'userAdminAnyDatabase', db: 'admin',"readWriteAnyDatabase"]);
robo 3T连接验证
以上是关于docker中安装mongo3.2的主要内容,如果未能解决你的问题,请参考以下文章