Docker 安装 MongoDB
MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。
1、查看可用的 MongoDB 版本
访问 MongoDB 镜像库地址: https://hub.docker.com/_/mongo?tab=tags&page=1。
可以通过 Sort by 查看其他版本的 MongoDB,默认是最新版本 mongo:latest。

你也可以在下拉列表中找到其他你想要的版本:

此外,我们还可以用 docker search mongo 命令来查看可用版本:
[root@instance-cllh86o0 sss]# docker search mongo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mongo MongoDB document databases provide high avai… 6973 [OK]
mongo-express Web-based MongoDB admin interface, written w… 715 [OK]
tutum/mongodb MongoDB Docker image – listens in port 27017… 230 [OK]
bitnami/mongodb Bitnami MongoDB Docker Image 121 [OK]
mongoclient/mongoclient Official docker image for Mongoclient, featu… 81 [OK]
mongooseim/mongooseim Small docker image for MongooseIM - robust a… 19frodenas/mongodb A Docker Image for MongoDB 18 [OK]
cvallance/mongo-k8s-sidecar Kubernetes side car to setup and maintain a … 15 [OK]
arm64v8/mongo MongoDB document databases provide high avai… 9centos/mongodb-32-centos7 MongoDB NoSQL database server 8circleci/mongo CircleCI images for MongoDB 8 [OK]
webhippie/mongodb Docker images for MongoDB 7 [OK]
istepanov/mongodump Docker image with mongodump running as a cro… 6 [OK]
centos/mongodb-36-centos7 MongoDB NoSQL database server 5yeasy/mongo-connector pipeline from a MongoDB cluster to other sys… 5 [OK]
centos/mongodb-26-centos7 MongoDB NoSQL database server 5eses/mongodb_exporter mongodb exporter for prometheus 4 [OK]
neowaylabs/mongodb-mms-agent This Docker image with MongoDB Monitoring Ag… 3 [OK]
centos/mongodb-34-centos7 MongoDB NoSQL database server 3andreasleicher/mongo-azure-backup a docker container to backup a mongodb using… 2 [OK]
ansibleplaybookbundle/mongodb-apb An APB to deploy MongoDB. 1 [OK]
ekesken/mongo docker image for mongo that is configurable … 1 [OK]
openshift/mongodb-24-centos7 DEPRECATED: A Centos7 based MongoDB v2.4 ima… 1ccitest/mongo CircleCI test images for Mongo 0 [OK]
phenompeople/mongodb MongoDB is an open-source, document databas… 0 [OK]

在上图中可以看到我们已经安装了最新版本(latest)的 mongo 镜像。
4、运行容器
安装完成后,我们可以使用以下命令来运行 mongo 容器:
[root@instance-cllh86o0 sss]# docker run -itd --name mongo -p 27017:27017 mongo --auth
d52238e2b7e16b273d0394c240e0626d5fa03c510ca2359e1bad8d5a8e6c107e
[root@instance-cllh86o0 sss]#
[root@instance-cllh86o0 sss]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d52238e2b7e1 mongo "docker-entrypoint.s…" 13 seconds ago Up 11 seconds 0.0.0.0:27017->27017/tcp mongo
911566243ba9 mysql:5.7 "docker-entrypoint.s…" 2 months ago Up 8 weeks 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
参数说明:
- -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
- --auth:需要密码才能访问容器服务。

5、安装成功
最后我们可以通过 docker ps 命令查看容器的运行信息:

接着使用以下命令添加用户和设置密码,并且尝试连接。
[root@instance-cllh86o0 sss]# docker exec -it mongo mongo admin
MongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f44fd222-7963-4793-ac44-b785af2a3dad") }
MongoDB server version: 4.2.8
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> db.auth('admin', '123456')
1
>

6、 客户端连接
-
连接mongo数据库的可视化客户端很多,因为我这里有Navicat Premium 15.x 支持mongodb,所以直接用这个了,如果是云服务器安装了mongodb服务端的话,一定要去云服务器的安全组中放行27017端口
image.png
7、创建用户
- 一般都是再去创建一个用户来使用
#login
docker exec -it mongo mongo admin
#admin database;
use admin;
#login admin database
auth('admin','123456');
#create user and auth
db.createUser( { user: "sa", pwd: "sa", roles: [ { role: "root", db: "admin" } ] });
#换np的连接的用户名和密码
网友评论