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
相关推荐
虹科网络安全3 分钟前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
java·数据库·redis
火山引擎开发者社区4 分钟前
火山引擎向量数据库 Milvus 版正式商业化:AI 时代的向量检索新标杆
数据库·milvus·火山引擎
神秘的土鸡27 分钟前
openEuler 25.09 企业级 MySQL主从复制部署与性能优化实战提升50%
linux·数据库·mysql·性能优化·openeuler
韩立学长38 分钟前
基于Springboot课堂教学辅助系统08922bq1(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
goxingman2 小时前
Oracle视图基础
数据库·oracle
Sinowintop2 小时前
EDI应用灵活扩展:拥抱容器化部署,赋能企业高效数据交换
docker·edi·容器化·扩展·数据交换·国产edi·弹性部署
米花町的小侦探2 小时前
Harbor安装
docker·kubernetes
黎相思2 小时前
MySQL索引特性
数据库·mysql
❀͜͡傀儡师2 小时前
docker 部署OnlyOffice实现在线编辑Word文档
docker·容器·word