Docker Compose安装MongoDB,并向宿主机映射数据文件/配置文件/日志文件

简介: 本文为博主实践Docker Compose方式安装MongoDB记录,希望对大家有所帮助。

🍀配置docker-compose.yml

新建存放mongodb数据的文件夹

mkdir -p ~/mongodb

创建docker-compose.yml文件

vim docker-compose.yml
# 按 i 进入编辑模式,输入以下内容
version: '3.8'
services:
  mongo:
    image: mongo:5 # 选择mongodb版本
    restart: always  # 自启动
    ports:
     - 27017:27017 # 映射宿主机端口
    volumes:
     - /docker/mongodb/data/db:/data/db    # 挂载数据文件,根据实际路径修改 :前的路径
     - /docker/mongodb/data/log:/var/log/mongodb  # 挂载日志文件,根据实际路径修改 :前的路径
     - /docker/mongodb/data/config:/etc/mongo  # 挂载配置文件,根据实际路径修改 :前的路径
# 按 esc 键,再输入 :wq ,回车退出vim

启动mongodb

# 在docker-compose.yml文件路径下,该方式退出终端失效
docker-compose up

# 后台启动
docker-compose up -d

若使用mongodb默认配置,到此已经完成mongodb安装。若需要修改mongodb启动配置可继续参考下文。

🍀修改mongodb启动配置

创建存放配置文件的文件夹

mkdir -p ~/mongodb/conf

创建配置文件 mongod.conf

cd ~/mongodb/conf
vim mongod.conf

#按 i 进入编辑模式,输入以下内容

# 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
  directoryPerDB: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 8
      directoryForIndexes: true

# 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

#replication:
replication:
   oplogSizeMB: 51200
   replSetName: rs0

在之前创建的docker-compose.yml文件增加一行配置


cd ~/mongodb
vim docker-compose.yml
# 按 i 进入编辑模式,输入以下内容
version: '3.8'
services:
  mongo:
    image: mongo:5 # 选择mongodb版本
    restart: always  # 自启动
    ports:
     - 27017:27017 # 映射宿主机端口
    volumes:
     - /docker/mongodb/data/db:/data/db    # 挂载数据文件,根据实际路径修改 :前的路径
     - /docker/mongodb/data/log:/var/log/mongodb  # 挂载日志文件,根据实际路径修改 :前的路径
     - /docker/mongodb/data/config:/etc/mongo  # 挂载配置文件,根据实际路径修改 :前的路径
    command: --config /docker/mongodb/mongod.conf # 配置文件
# 按 esc 键,再输入 :wq ,回车退出vim

再启动就可以啦

cd ~/mongodb
docker-compose up -d

🍀进入mongodb终端窗口

Docker Compose 启动时会使用目录名(mongodb)作为项目名称,Docker Compose 会将所有的资源名称中加上前缀 mongodb-。

docker exec -it mongodb-mongo-1 mongo
目录
相关文章
|
4月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
496 18
|
8月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1019 4
|
11月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
11月前
|
NoSQL MongoDB 微服务
微服务2——MongoDB单机部署1——下载安装
本指南介绍在Windows系统上安装和启动MongoDB的步骤。首先,从官网下载适用于32位或64位系统的预编译二进制包,选择稳定版(y为偶数)。解压后创建数据目录`data/db`,可通过命令行参数(如`mongod --dbpath=..\data\db`)或配置文件启动服务。配置文件需注意转义字符与空格使用,支持自定义日志路径、端口等参数。将bin目录加入环境变量可简化启动操作。
336 0
微服务2——MongoDB单机部署1——下载安装
|
11月前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
755 0
|
存储 NoSQL 安全
【赵渝强老师】MongoDB的Journal日志
MongoDB通过Journal日志保证数据安全,记录检查点后的更新,确保数据库从异常中恢复到有效状态。每个Journal文件100M,存于--dbpath指定的journal子目录。默认已启用Journal日志,可通过--journal参数手动启用。WiredTiger存储引擎使用128KB内存缓冲区,异常关机时可能丢失最多128KB的数据。视频讲解和详细步骤参见附录。
379 17
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。
338 0
|
Docker 容器
Docker查看映射卷报错
问题描述: 当查看Docker容器的映射卷时出现报错信息,如下: [root@kazihuo ~]# docker inspect -f {{.Volumes}} volume   #volume指容器名称 Template parsing error: template: :1:2:...
1095 0