docker启动mongo

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

你可能感兴趣的:(docker镜像使用,docker,容器,运维)