docker启动mongo
[root@vm ~]# docker run -id --name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 mongo:5.0 --auth
[root@vm ~]# docker exec -it mongo bash
root@652a263c6ec1:/# mongosh
test> use admin
switched to db admin
admin> show dbs #需要认证
MongoServerError: command listDatabases requires authentication
admin> db.auth('admin','123456') #认证
{ ok: 1 }
admin> show dbs #查看db
admin 100.00 KiB
config 12.00 KiB
local 40.00 KiB
admin> use testdb #使用db,不存在会自动创建
switched to db testdb
testdb> db.testdb.insert({"name":"dachui"}) #插入数据
DeprecationWarning: Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite.
{
acknowledged: true,
insertedIds: { '0': ObjectId('65b891d4a0fd3827c2ebc080') }
}
testdb> db #查看当前db
testdb
docker-composeq启动
[root@vm mayfly-go-linux-amd64]# cat docker-compose.yaml
version: "3"
services:
mongodb:
image: mongo:5.0
container_name: mongo
restart: always
ports:
- 27017:27017
#volumes:
# - ./data/mongodb:/data/db
# - ./logs/mongodb:/var/log/mongodb
command: --auth
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=123456
#下面的三个参数似乎无效,
- MONGO_INITDB_DATABASE=testdb #show dbs 看不到testdb
- MONGO_USERNAME=test #db.system.users.find() 查不到test
- MONGO_PASSWORD=test123
用户查看及创建
[root@vm mayfly-go-linux-amd64]# docker-compose up -d
[root@vm mayfly-go-linux-amd64]# docker exec -it mongo bash
test> use admin
switched to db admin
admin> db.auth('admin','123456')
{ ok: 1 }
admin> db.system.users.find() #只有admin用户
admin> use testdb
switched to db testdb
testdb> db.createUser({user: "test",pwd: "test123",roles: [ { role: "readWrite", db: "testdb" } ]})
{ ok: 1 }
testdb> use admin
switched to db admin
admin> db.createUser({user: "test",pwd: "test123",roles: [ { role: "readWrite", db: "testdb" } ]})
{ ok: 1 }
admin> db.system.users.find()
{
_id: 'testdb.test', #testdb里的test
userId: UUID('46d728e5-883b-4df4-be06-8d642b33eb9d'),
user: 'test',
db: 'testdb',
credentials: {
'SCRAM-SHA-1': {
iterationCount: 10000,
salt: 'U885TkJB38twoPnV8OtBDA==',
storedKey: 'crRdOT3rTwNgX3cQqgmM8rXBoVI=',
serverKey: '0nkJ0Wgu5LM/YFxKpYeQ1lZ2HYc='
},
'SCRAM-SHA-256': {
iterationCount: 15000,
salt: 'zxDd8GeBRWONwSNZ1rlGWAfnk27Suyn0p9BYig==',
storedKey: 'y5W7CizViHML4mDzYmRE8heo5RfVvcj2JZ+qGJ/VidQ=',
serverKey: 'yv5K4iGSslSI+1xNKxIPZB98dZGHEOYR5lmxQDDMK/I='
}
},
roles: [ { role: 'readWrite', db: 'testdb' } ]
},
{
_id: 'admin.test', #admin里的test
userId: UUID('2fece50b-5616-4329-b0e9-d912670413e2'),
user: 'test',
db: 'admin',
credentials: {
'SCRAM-SHA-1': {
iterationCount: 10000,
salt: 'O9pYoYjimlw5tI/HdKFZ0Q==',
storedKey: '99ocLZyrkUMb7d1OFDAwfqJDIow=',
serverKey: 'pXGwLs+hSph1IA2jE/ceeYHd2nc='
},
'SCRAM-SHA-256': {
iterationCount: 15000,
salt: 'K0Kf8+5pQ5CWppnz3pPPE06FcUR+2VTFfepRWA==',
storedKey: 'M1+zeEJrYJd07WvsxviY56vWQ0vf7J3GuxMoGpLWP6A=',
serverKey: '219+NHIcxc7YNB4pi0XDvr3FJiQUHtUhXarUNjuDTrI='
}
},
roles: [ { role: 'readWrite', db: 'testdb' } ]
}
使用参考
https://blog.csdn.net/weixin_38316697/article/details/126085968