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
目录
相关文章
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
463 23
【赵渝强老师】MongoDB写入数据的过程
|
NoSQL Redis 数据安全/隐私保护
挂载配置文件以Docker启动Redis服务
以上步骤提供了一个高效且实用的方式来使用Docker启动并运行带有自定义配置的Redis服务。这些操作可以适用于开发、测试和生产环境,是一种灵活且可扩展的部署方案。通过挂载配置文件和数据卷,您可以轻松地管理和迁移您的Redis实例。
1086 9
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1835 4
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
644 28
|
存储 NoSQL 安全
【赵渝强老师】MongoDB的Journal日志
MongoDB通过Journal日志保证数据安全,记录检查点后的更新,确保数据库从异常中恢复到有效状态。每个Journal文件100M,存于--dbpath指定的journal子目录。默认已启用Journal日志,可通过--journal参数手动启用。WiredTiger存储引擎使用128KB内存缓冲区,异常关机时可能丢失最多128KB的数据。视频讲解和详细步骤参见附录。
587 17
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
1212 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
426 0
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
724 5
|
存储 JSON 网络协议
Docker面试整理-如何查看和管理Docker容器的日志?
通过本文的介绍,我们了解了如何查看和管理Docker容器的日志,包括使用 `docker logs`命令、配置日志驱动、设置日志选项和集中日志管理。掌握这些技能,不仅可以在面试中展示专业水平,也能在实际工作中高效
2870 3
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
393 1