Docker安装mongo并设置用户名密码

准备:

新建mongo目录,在其下建立configdb data 2个目录
在configdb下新建mongodb.conf配置文件,内容如下:

gappend=true
# ip 默认本机,设置为0.0.0.0可以外网连接
bind_ip=0.0.0.0
# 端口
port=27017
# 是否后台运行,设置为true 启动 进程在后台运行的守护进程模式。默认false。 
fork=true
# 预分配方式。默认false:使用预分配方式来保证写入性能的稳定,预分配在后台进行,并且每个预分配的文件都用0进行填充。这会让MongoDB始终保持额外的空间和空余的数据文件,
# 从而避免了数据增长过快而带来的分配磁盘空间引起的阻塞。设置noprealloc= true来禁用预分配的数据文件,会缩短启动时间,但在正常操作过程中,可能会导致性能显著下降。
noprealloc=true
# 用户认证,默认false。不需要认证。当设置为true时候,进入数据库需要auth验证,当数据库里没有用户,则不需要验证也可以操作。直到创建了第一个用户,之后操作都需要验证。
auth=true

拉取镜像

 docker pull mongo

查看镜像

[root@wdy mongo]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              965553e202a4        5 weeks ago         363MB

启动容器

[root@wdy mongo]# docker run --name telemedicine-mongo --restart=always -p 27017:27017 -v /wdy/mongo/data:/data -v /wdy/mongo/configdb:/data/configdb -d mongo
4db20248d1874407baccf62aee8cd291d8fbcedd682512c34e3f88258b98b9e2
[root@jifang001 mongo]# 

查看容器进程:

[root@wdy configdb]# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                               NAMES
4db20248d187        mongo                         "docker-entrypoint.s…"   9 minutes ago       Up 9 minutes        0.0.0.0:27017->27017/tcp            my-mongo

设置用户名密码过程:

[root@jifang001 configdb]# docker exec -it 4db20248d187 mongo admin
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("da6b17db-0c7d-4a9a-a5c1-58434747d31d") }
MongoDB server version: 4.2.1
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
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
> db.auth("root","root");
> 1
>  db.createUser({ user: 'wdy', pwd: '123456', roles: [ { role: "readWrite", db: "mydb" } ] });
Successfully added user: {
	"user" : "wdy",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "mydb"
		}
	]
}
> db.auth("wdy","123456");
1
> use mydb
switched to db mydb
> db.test.save({name:"tmname-online"});
WriteResult({ "nInserted" : 1 })
> db.test.find({});
{ "_id" : ObjectId("5deda790d138a6c707ce9d20"), "name" : "tmname-online" }
> 

安装完成
用连接工具连接测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
OK

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章