Docker初识:mongo安装

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了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值