Docker部署MongoDB 5.0.5

1、查看目录

复制代码
root@wielun:~# tree mongo
mongo
├── conf
│   └── mongod.conf
├── data
├── docker-compose.yml
└── log

root@wielun:~# cd mongo
root@wielun:~/mongo# chmod 777 log

2、配置docker-compose.yml

复制代码
root@wielun:~/mongo# cat docker-compose.yml
version: '3'
services:
  mongo:
    image: mongo:5.0.5
    privileged: true
    restart: always
    container_name: mongo
    hostname: mongo
    environment:
      TZ: Asia/Shanghai
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
    ports:
      - 27017:27017
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./conf/mongod.conf:/etc/mongod.conf
      - ./log:/var/log/mongodb
      - ./data:/data/db
    command: mongod --config /etc/mongod.conf

3、配置mongod.conf

复制代码
root@wielun:~/mongo# cat conf/mongod.conf
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /data/db
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:
  #authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

4、配置mongo

复制代码
root@wielun:~/mongo# docker-compose up -d
root@wielun:~/mongo# docker exec -it mongo /bin/bash
root@mongo:/# ps -ef   #默认添加了--auth,代表需要账号密码登录
UID          PID    PPID  C STIME TTY          TIME CMD
mongodb        1       0  4 12:45 ?        00:00:00 mongod --config /etc/mongod.conf --auth

root@mongo:/# mongo -u root -p
MongoDB shell version v5.0.5
Enter password:
...
---
> db.version()
5.0.5
> use admin
switched to db admin
> db.auth("root","root")
1
> show users
{
        "_id" : "admin.root",
        "userId" : UUID("c5e91caa-4e50-445b-9537-c7066313b52b"),
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}

> db.createUser({user:'root',pwd:'root',
... roles:[
... {
... "role" : "clusterAdmin",
... "db" : "admin"
... },
... {
... "role" : "readAnyDatabase",
... "db" : "admin"
... },
... {
... "role" : "readWrite",
... "db" : "test"
... }
... ]});
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "clusterAdmin",
                        "db" : "admin"
                },
                {
                        "role" : "readAnyDatabase",
                        "db" : "admin"
                },
                {
                        "role" : "readWrite",
                        "db" : "test"
                }
        ]
}
> db.auth("root","root")
1
> db.test.insert({ item: "wielun"})
WriteResult({ "nInserted" : 1 })

创建用户:

复制代码
db.createUser({user:'root',pwd:'root',
roles:[
	{
		"role" : "clusterAdmin",
		"db" : "admin"
	},
	{
		"role" : "readAnyDatabase",
		"db" : "admin"
	},
	{
		"role" : "readWrite",
		"db" : "test"
	}
]});

5、查看结果

这里使用的MongoDB Compass进行连接


相关推荐
计算机小手2 小时前
推荐一个 GitHub 开源项目信息卡片生成工具,支持Docker快速部署和API调用
经验分享·docker·github·开源软件
饭来_3 小时前
通过 SSH 远程连接 docker 容器
vscode·docker·ssh
1024find4 小时前
Spark on k8s部署
大数据·运维·容器·spark·kubernetes
kura_tsuki4 小时前
[Docker集群] Docker 容器入门
运维·docker·容器
开始学AI5 小时前
【Docker技术】docker-compose.yml与Dockerfile解析
java·docker·eureka
心态特好10 小时前
详解redis,MySQL,mongodb以及各自使用场景
redis·mysql·mongodb
点灯小铭16 小时前
基于单片机的自动存包柜设计
数据库·单片机·mongodb·毕业设计·课程设计
一水鉴天18 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
武子康18 小时前
Java-143 深入浅出 MongoDB NoSQL:MongoDB、Redis、HBase、Neo4j应用场景与对比
java·数据库·redis·mongodb·性能优化·nosql·hbase
飞快的蜗牛19 小时前
利用linux系统自带的cron 定时备份数据库,不需要写代码了
java·docker