Linux系统:CentOS Linux release 7.4.1708 (Core)
Docker版本: 17.03.0-ce, build 3a232c8
1、查询下载镜像
[root@wngpenghao opt]# docker search mongo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mongo MongoDB document databases provide high av... 6359 [OK]
mongo-express Web-based MongoDB admin interface, written... 557 [OK]
tutum/mongodb MongoDB Docker image – listens in port 270... 228 [OK]
bitnami/mongodb Bitnami MongoDB Docker Image 103 [OK]
mongoclient/mongoclient Official docker image for Mongoclient, fea... 77 [OK]
mongooseim/mongooseim Small docker image for MongooseIM - robust... 18
frodenas/mongodb A Docker Image for MongoDB 17 [OK]
cvallance/mongo-k8s-sidecar Kubernetes side car to setup and maintain ... 14 [OK]
centos/mongodb-32-centos7 MongoDB NoSQL database server 8
arm64v8/mongo MongoDB document databases provide high av... 6
centos/mongodb-26-centos7 MongoDB NoSQL database server 5
circleci/mongo CircleCI images for MongoDB 5 [OK]
istepanov/mongodump Docker image with mongodump running as a c... 5 [OK]
webhippie/mongodb Docker images for MongoDB 4 [OK]
centos/mongodb-36-centos7 MongoDB NoSQL database server 4
eses/mongodb_exporter mongodb exporter for prometheus 4 [OK]
requilence/mongodb-backup mongo backup container 3 [OK]
neowaylabs/mongodb-mms-agent This Docker image with MongoDB Monitoring ... 2 [OK]
centos/mongodb-34-centos7 MongoDB NoSQL database server 2
ekesken/mongo docker image for mongo that is configurabl... 1 [OK]
openshift/mongodb-24-centos7 DEPRECATED: A Centos7 based MongoDB v2.4 i... 1
ansibleplaybookbundle/mongodb-apb An APB to deploy MongoDB. 1 [OK]
andreasleicher/mongo-azure-backup a docker container to backup a mongodb usi... 0 [OK]
ccitest/mongo CircleCI test images for Mongo 0 [OK]
fuww/mongo-connector mongo-connector + alpine + docker 0 [OK]
[root@wngpenghao opt]# docker pull mongo
2、查看镜像
[root@wngpenghao opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest 965553e202a4 2 weeks ago 363 MB
3、运行
docker run --privileged=true -p 27017:27017 --name mongodb -v /opt/mongodb/configdb:/data/configdb/ -v /opt/mongodb/db/:/data/db/ -id mongo --auth
[root@wngpenghao opt]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fe4e51022c4 mongo "docker-entrypoint..." 57 minutes ago Up 57 minutes 0.0.0.0:27017->27017/tcp mongodb
4、MongoDB测试。
以admin身份进入mongo
docker exec -it 8fe4e51022c4 mongo admin
创建admin账户
db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
创建完admin用户之后,就可以按着正常使用的mongo的方式,创建用户,插入数据或者登陆客户端查看数据等操作了。
问题:
1、使用客户端连接数据库的时候,提示“Network error while attempting to run command 'saslStart' on host 'xxx:27017'”。
服务端日志
2019-11-18T08:06:23.382+0000 E - [conn51] Assertion: Location34348: cannot translate opcode 2010 src/mongo/rpc/message.h 120
2019-11-18T08:06:23.443+0000 I NETWORK [conn51] DBException handling request, closing client connection: Location34348: cannot translate opcode 2010
因为连接成功但是登陆失败,试了一下最新版本的客户端则不存在问题,推测可能缺少了 saslstart 相关的一些依赖,导致了加密/解密过程中出现的问题。所以应该升级一下客户端就OK了。
2、not authorized on admin to execute command
Mongodb默认是不需要用户密码就可以连接的,如果使用命令报错"not authorized on admin to execute command ",则表示当前登陆用户不具备相应权限;
:添加用户时各个角色对应权限:
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root
创建一个具有root权限的用户:
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
);
这样就可以OK了。