Docker 部署 MongoDB 数据库

文章目录

官网地址

docker 网络

bash 复制代码
# 创建 mongo_network 网络
docker network create mongo_network
# 查看网络
docker network list
# 容器连接到 mongo_network 网络
docker network connect mongo_network mongo
# 断开容器 mongo_network 网络
docker network disconnect mongo_network mongo

mongod.conf

bash 复制代码
# 容器内查看 mongod.conf
cat /etc/mongod.conf.orig
  • 缩主机上创建 mongo/configdb/mongod.conf
bash 复制代码
# 数据
storage:
  dbPath: /data/db
  journal:
    enabled: true
# 日志
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
# 端口
net:
  port: 27017
  # bindIp: 127.0.0.1
# 安全
security:
  authorization: enabled

部署 MongoDB

bash 复制代码
# MongoDB镜像
docker pull mongo:4
docker run --name mongo \
--network mongo_network \
-p 27017:27017 \
-v $PWD/mongo/data:/data/db \
-v $PWD/mongo/configdb:/data/configdb \
-v $PWD/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME="root" \
-e MONGO_INITDB_ROOT_PASSWORD="4NuMDwIzp05BdKp7Bdmf" \
-d mongo:4 \
--config /data/configdb/mongod.conf
  • 指定服务执行器与缓存大小
bash 复制代码
docker run --name mongo \
--network mongo_network \
-p 27017:27017 \
-v $PWD/mongo/data:/data/db \
-v $PWD/mongo/configdb:/data/configdb \
-v $PWD/mongo/logs:/var/log/mongodb \
-e MONGO_INITDB_ROOT_USERNAME="root" \
-e MONGO_INITDB_ROOT_PASSWORD="4NuMDwIzp05BdKp7Bdmf" \
-d mongo:4 \
--config /data/configdb/mongod.conf \
--serviceExecutor adaptive --wiredTigerCacheSizeGB 1.2

部署 mongo-express

bash 复制代码
# mongo-express镜像
docker pull mongo-express:1.0.2
docker run --name mongo-express \
    --network mongo_network \
    -p 8081:8081 \
    -e ME_CONFIG_MONGODB_SERVER=mongo \
    -e ME_CONFIG_MONGODB_ADMINUSERNAME="root" \
    -e ME_CONFIG_MONGODB_ADMINPASSWORD="4NuMDwIzp05BdKp7Bdmf" \
    # 设置 mongo-express 登录账号密码
    -e ME_CONFIG_BASICAUTH=true \
    -e ME_CONFIG_BASICAUTH_USERNAME="admin" \
    -e ME_CONFIG_BASICAUTH_PASSWORD="123456" \
    -d mongo-express:1.0.2
  • 查看默认登录账号密码
bash 复制代码
# 进入 mongo-express 容器内
docker exec -it mongo-express /bin/bash
# 查看config.default.js
cat /app/config.default.js

注意: 默认登录账号密码是 admin/pass ,docker配置中已经将登录账号密码设置为 admin/123456

docker-compose.yml

yml 复制代码
services:
  mongo:
    image: mongo:4
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    volumes:
      - /etc/localtime:/etc/localtime
      - ./mongo/data:/data/db
      - ./mongo/configdb:/data/configdb
      - ./mongo/logs:/var/log/mongodb
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 4NuMDwIzp05BdKp7Bdmf
      command: --config /data/configdb/mongod.conf --wiredTigerCacheSizeGB 1
    # command: --config /data/configdb/mongod.conf --wiredTigerCacheSizeGB 1.2 --serviceExecutor adaptive
  mongo-express:
    image: mongo-express:1.0.2
    container_name: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_OPTIONS_EDITORTHEME: "ambiance"
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: 4NuMDwIzp05BdKp7Bdmf
      ME_CONFIG_MONGODB_SERVER: mongo
      # ME_CONFIG_MONGODB_URL: mongodb://root:4NuMDwIzp05BdKp7Bdmf@mongo:27017/
      ME_CONFIG_BASICAUTH: true
      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: 123456
    depends_on:
      - mongo

注意: 登录账号密码已改为 admin/123456

MongoDB shell

bash 复制代码
# 进入 mongo 容器内
docker exec -it mongo /bin/bash
# 或直接进容器内的 MongoDB shell
docker exec -it mongo mongo
bash 复制代码
# 切换数据库
> use admin
# 管理员身份连接(MONGO_INITDB_ROOT_USERNAME配置值)
> db.auth("root",passwordPrompt())
# 输入密码(MONGO_INITDB_ROOT_PASSWORD配置值)

# 显示数据库
> show dbs
# 显示用户
> show users
bash 复制代码
# 帮助
$ help
# 退出
$ exit
相关推荐
冬奇Lab2 分钟前
RAG 系列(六):向量数据库——存储与检索的基础设施
数据库·人工智能·llm
vooy pktc2 分钟前
macOS安装Redis
数据库·redis·macos
辞旧 lekkk6 分钟前
【Qt】初识(上)
开发语言·数据库·qt·学习·萌新
落落121320 分钟前
MySQL事务四大特性(ACID)
数据库
阿维的博客日记26 分钟前
Redis的旁路缓存策略和先删除缓存后更新数据库,先更新数据库后删除缓存,这三种策略之间有什么关系??
数据库·redis·缓存
ictI CABL43 分钟前
redis连接服务
数据库·redis·bootstrap
苍煜1 小时前
SpringBoot单体应用到分布式下的数据库锁、事务、Redis事务、分布式锁、分布式事务协调
数据库·spring boot·分布式
SNOWPIAOP1 小时前
DOCKER的一些有用命令
docker
叶 落1 小时前
Ubuntu 通过 Docker 安装 Mysql8
linux·ubuntu·docker
赵文宇(温玉)1 小时前
Docker Compose 安装 Etcd
docker·容器·etcd