背景:
根据需要,我需要安装一个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" ==================================================== |
参考链接:https://hub.docker.com/r/frodenas/mongodb/
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 数据库了。更丰富的操作指令网上教程很多。可自己查找。