Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程
一、简介
二、安装wsl
三、wsl磁盘迁移
四、wsl磁盘压缩
五、Docker下载
六、win11配置docker虚拟环境命令工具
七、Docker部署mysql
八、Docker部署redis
九、Docker部署mongo
一、简介
Docker 是一个开源的容器化平台,它可以帮助开发者打包、分发和运行应用程序以及其依赖项。通过使用 Docker,开发者可以将应用程序及其环境打包成一个称为容器的独立单元,使应用程序在不同的环境中具备一致的运行行为。
优点:
1.轻量和快速启动:Docker 容器与传统虚拟机相比,更加轻量级,因为它们共享主机操作系统的内核。这使得容器的启动和停止速度更快,可以在几秒钟内完成。
2.环境一致性:Docker 容器包含了应用程序及其所有的依赖项,包括操作系统、库文件和其他软件。这意味着你可以在任何支持 Docker 的环境中运行容器,而不用担心环境差异导致的应用程序运行问题。
3.可移植性:Docker 容器可以在不同的平台和操作系统上运行,包括开发环境、测试环境和生产环境。这使得应用程序的部署和迁移更加简单和可靠。
4.资源隔离:Docker 使用 Linux 内核的容器技术,可以实现对容器之间的资源隔离,如 CPU、内存和网络。这样可以避免容器之间的相互干扰,提高应用程序的稳定性和安全性。
5.可扩展性:Docker 容器可以根据需求进行水平扩展,即通过运行多个相同的容器来处理更大的工作负载。这种扩展性使得应用程序可以更好地适应变化的流量需求。
缺点:
1.学习曲线:对于初学者来说,理解和学习 Docker 的概念和工作原理可能需要一些时间和努力。尤其是对于那些没有太多系统管理经验的开发者来说,可能需要额外的学习成本。
2.存储占用:每个 Docker 容器都需要包含完整的文件系统和应用程序依赖项,这可能导致存储占用较大。尤其是当需要运行大量容器时,需要考虑存储资源的管理和优化。
3.安全性:虽然 Docker 提供了一些安全机制来隔离容器,但不正确的配置和使用可能导致容器之间的安全漏洞。因此,需要注意安全最佳实践,并进行适当的安全配置和监控。
4.网络配置复杂性:在多个容器之间建立网络通信可能需要一些配置和管理。特别是在涉及跨主机通信或多个容器之间的复杂网络拓扑时,需要仔细规划和配置网络。
二、安装wsl
1.搜索开发者设置值,打开开发人员模式
![图片[1] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/5aa0648c7a4c4cdaa84929afb0ed15f9.png)
2.搜索启用或关闭windows功能。选择“适用于Linux的windows子系统、window虚拟机监控程序平台”,点击确定
![图片[2] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/a514bdfdc7a64918ad0ec93472369e6c.png)
3.另起个窗口,运行wsl –version,显示版本号则安装成功
![图片[3] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/d9f931d5c93d4522aa81d86736366e18.png)
4.管理员身份打开命令行工具,运行wsl –install,官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/install
![图片[4] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/f57766c3441a4bd18c67bceeb0d66033.png)
5.微软商店搜索Ubuntu,需要虚拟机的安装Ubuntu,可不安装,安装docker时docker会有自己的磁盘
![图片[5] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/fdd5b9263f0d4ae89abc0df113fba7a8.png)
6.启动Ubuntu,设置用户名和密码
![图片[6] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/e781b8c1d317434dbd25d3f6e5272561.png)
7.wsl基本命令
wsl –install:安装 WSL 和 Linux 的默认 Ubuntu 发行版
wsl –set-version :设置WSL 版本, 为Linux发行版的名称, 为 1 或 2
wsl –set-default-version :设置默认 WSL 版本
wsl –list –verbose:列出已安装的 Linux 发行版
wsl –list –online:列出可用的 Linux 发行版
wsl –set-default :设置默认 Linux 发行版
wsl –unregister :注销或卸载 Linux 发行版
wsl ~:将目录更改为主页
wsl –update:更新 WSL
wsl –status:检查 WSL 状态
wsl –version:检查 WSL 版本
wsl –help:帮助命令
wsl –user :以特定用户的身份运行,若要以指定用户身份运行 WSL,将 替换为 WSL 发行版中存在的用户名。
config –default-user :更改发行版的默认用户
wsl –shutdown:立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机
wsl –terminate :终止指定的发行版或阻止其运行
wsl hostname -I:返回通过 WSL 2 安装的 Linux 发行版 IP 地址(WSL 2 VM 地址)
ip route show | grep -i default | awk ‘{ print $3}’:返回从 WSL 2 (WSL 2 VM) 看到的 Windows 计算机的 IP 地址
wsl –export :导出分发版
wsl –import :导入分发版
wsl –import-in-place :将指定的 .vhdx 文件导入为新的发行版。 虚拟硬盘必须采用 ext4 文件系统类型格式
wsl –unregister :注销并卸载 WSL 发行版
wsl –mount :装载磁盘或设备
wsl –unmount :卸载磁盘
三、wsl磁盘迁移
1.管理员运行命令行工具,运行命令:wsl –shutdown,关闭所有虚拟机
![图片[7] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/b93abf66b8bb40d99195ed43958e93d4.png)
2.运行wsl -l -v查看虚拟机名称
![图片[8] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/835aa7506d3a433782fd2c29b9ea9bbe.png)
3.运行wsl –export Ubuntu-24.04 F:WSL2Ubuntu24.04.bak,导出Ubuntu-24.04文件,Ubuntu-24.04为wsl -l -v查看的虚拟机名称
![图片[9] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/29952dda4f814ba5aaef5469b12a730b.png)
4.运行wsl –unregister Ubuntu-24.04注销原来的虚拟机
![图片[10] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/ae3a0bdb6b7d430ba696c182f2135b87.png)
5.运行wsl –import Ubuntu-24.04 F:wsl F:WSL2Ubuntu24.04.bak –version 2,重新导入虚拟机
![图片[11] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/52e9710441314e4d81fac7ee78e32665.png)
6.运行设置ubuntu2404 config –default-user xxx默认用户,如果不设置默认用户,则每次都是以root身份启动;然后重新启动即可
![图片[12] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/2530bccf199a4960b6ee9d722b99cf02.png)
7.磁盘映射,运行wsl,运行命令ln -s /mnt/D/work/ /home/mainframe/work,意思是把D盘中的work映射到home下的mainframe文件的work中

四、wsl磁盘压缩
1.先找到Ubuntu虚拟机磁盘文件的路径:C:用户用户名AppDataLocalPackagesCanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgscLocalState,注意用户名是你当前账户名
![图片[13] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/21dcabdc0f074de3876756b0c07b6866.png)
2.管理员运行命令行工具,运行命令:wsl –shutdown,关闭所有虚拟机
![图片[14] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/4d3bca8a4d28440b8de8b839c4424b1b.png)
3.按顺序运行下面命令,压缩卸载磁盘
# 进入磁盘管理
diskpart
# 选择虚拟磁盘文件
select vdisk file="ext4.vhdx文件路径"
# 压缩文件
compact vdisk
# 压缩完成后卸载磁盘
detach vdisk

五、Docker下载
1.官网:https://www.docker.com/,请访问官网下载桌面版
![图片[15] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/d82b16a040fb467c9d6cd655804ea7e1.png)
2.双击exe安装即可,docker默认安装在系统盘,可以迁移Docker磁盘,避免把系统盘撑爆,docker磁盘默认路径在C:Users用户名AppDataLocalDockerwsl,按照“wsl磁盘迁移”步骤迁移即可,也可指定目录安装。如需指定目录安装,可跳过此步骤
![图片[16] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/0e3b266e88e646fa86e6c7ec01d72021.png)
3.指定目录安装docker,管理员运行命令行工具,cd到Docker下载路径运行下面命令。
/****
在运行命令前,一定要提前手动创建好对应文件夹,不然会报错。
--installation-dir:DockerDesktop安装程序的安装目录
--wsl-default-data-root:Docker存放是Docker用于存储镜像、容器、卷等数据的目录。
--windows-containers-default-data-root:Windows容器数据
****/
start /w “” “Docker Desktop Installer.exe” install -accept-license --installation-dir=“D:Program FilesDocker” --wsl-default-data-root=“D:Program FilesDockerwsl” --windows-containers-default-data-root=“D:Program FilesDocker”

4.卸载或者更新docker如果遇到下图提示,此时管理员运行命令行工具,运行:sc delete com.docker.service,刷新即可
![图片[17] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/423dbb4fc6a843bc9ca58457fe3d0f37.png)
5.设置镜像源,可参考:https://docker.xuanyuan.me/#mirror-address
"registry-mirrors": [
"https://docker.1ms.run"
]

六、win11配置docker虚拟环境命令工具
1.打开命令行工具,下拉选择设置
![图片[18] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/1adaaf6ddf2e415bb7aa9112bbfbb102.png)
2.点击添加新配置文件,名称输入Docker,命令行输入C:Windowssystem32wsl.exe -d docker-desktop –cd ~/…,图标输入C:Program FilesWSLwsl.exe。命令行中的docker-desktop为wsl中虚拟环境的名称,输入wsl -l -v查看
![图片[19] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/b2225000e139454fa97a3ab80a9ec7f8.png)
3.下拉打开名为docker命令工具,运行ls,测试是否添加配置成功

七、Docker部署mysql
1.打开命令行工具,运行docker pull mysql,即可拉取mysql;
![图片[20] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/0af7b1c669c24959a846fdd49218094f.png)
2.运行mysql容器:docker run -itd –name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
![图片[21] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/45c97568509443d3b8444fee5b97c4bd.png)
3.运行docker exec -it mysql-test bash进入容器,查看配置文件、日志文件、数据文件是否存在
test -f /etc/my.cnf && echo "配置文件存在" || echo "配置文件不存在"
test -d /var/lib/mysql && echo "数据文件目录存在" || echo "数据文件目录不存在"
test -d /var/log && echo "日志文件目录存在" || echo "日志文件目录不存在"
![图片[22] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/aa0bd393f0ec47dca4ae9de64c151e16.png)
4.运行docker stop mysql-test、docker rm mysql-test删除容器
![图片[23] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/3d653918c1f543b481417846183892ad.png)
5.在宿主机找合适的位置创建mysql挂载目录mysql>data、mysql>my.cnf;宿主机为此电脑,而非doctor安装的磁盘
![图片[24] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/aa02cabba4af4928a33b3484be9a9dba.png)
6.在mysql>my.cnf中写入下面代码
# =============================================
# MySQL 服务器配置文件
# 官方配置指南:http://dev.mysql.com/doc/refman/9.3/en/server-configuration-defaults.html
# =============================================
# =============================================
# MySQL 服务器端配置
# =============================================
[mysqld]
#######################################
### 基础配置 ###
#######################################
port = 3306 # 监听端口,默认3306
host-cache-size=0 # 禁用主机名缓存,提升性能
skip-name-resolve # 禁用DNS反向解析,加速连接
datadir=/var/lib/mysql # 数据文件存储路径(Docker容器内路径)
socket=/var/run/mysqld/mysqld.sock # Unix socket文件路径
secure-file-priv=/var/lib/mysql-files # 限制LOAD DATA等操作的文件目录
user=mysql # 运行MySQL服务的系统用户
#######################################
### 性能配置 ###
#######################################
max_connections = 200 # 最大连接数(根据服务器内存调整)
max_connect_errors = 10 # 最大连接错误次数,超过则阻止主机连接
thread_cache_size = 10 # 线程缓存数量,减少连接创建开销
table_open_cache = 4000 # 表描述符缓存大小,影响表打开性能
#######################################
### 字符集配置 ###
#######################################
character_set_server = utf8mb4 # 服务端默认字符集(支持完整Unicode)
collation_server = utf8mb4_unicode_ci # 默认排序规则(区分大小写和重音)
#######################################
### 存储引擎配置 ###
#######################################
default_storage_engine = InnoDB # 默认使用InnoDB引擎(支持事务)
innodb_buffer_pool_size = 256M # InnoDB缓冲池大小(建议设为物理内存70%)
innodb_flush_log_at_trx_commit = 1 # 事务提交时刷写日志(1=最高一致性,2=折衷,0=性能优先)
#######################################
### 日志配置 ###
#######################################
log_error = /var/log/mysql/error.log # 错误日志路径(需确保目录可写)
log_error_verbosity = 3 # 错误日志详细程度(1=错误,2=错误+警告,3=错误+警告+通知)
slow_query_log = ON # 启用慢查询日志
slow_query_log_file = /var/log/mysql/slow.log # 慢查询日志路径
long_query_time = 5 # 慢查询阈值(秒),超过此时间的查询会被记录
general_log = OFF # 生产环境建议关闭通用查询日志(会产生大量I/O)
general_log_file = /var/log/mysql/general.log # 通用查询日志路径
pid-file=/var/run/mysqld/mysqld.pid # 进程ID文件路径
# =============================================
# MySQL 客户端配置
# =============================================
[client]
socket=/var/run/mysqld/mysqld.sock # 客户端连接使用的socket文件路径
default_character_set=utf8mb4 # 客户端默认字符集
#######################################
### 加载该目录所有.cnf后缀的配置文件 ###
#######################################
!includedir /etc/mysql/conf.d/
7.运行下面命令重新运行mysql容器,并挂载配置文件、日志目录、数据文件目录
/*****
-v /f/Docker/home/mysql/data:/var/lib/mysql 挂载数据库数据,其中f是window中的盘符,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-v /f/Docker/home/mysql/my.cnf:/etc/my.cnf 挂载配置文件,其中f是window中的盘符,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-e MYSQL_ROOT_PASSWORD=root 数据库root用户的密码
--mount 等同于-v,下面两个命令使用其中一个即可
*****/
docker run -itd -p 3306:3306 --privileged=true --name mysql -v /f/Docker/home/mysql/my.cnf:/etc/my.cnf -v /f/Docker/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql --default-time-zone=+8:00
docker run -itd -p 3306:3306 --privileged=true --name mysql --mount type=bind,src=/f/Docker/home/mysql/my.cnf,dst=/etc/my.cnf --mount type=bind,src=/f/Docker/home/mysql/data,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql --default-time-zone=+8:00
8.客户端连接mysql![图片[25] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/9ede7d3f8481498ca2258c4f2cc50f0f.png)
9.验证配置文件是否挂载成功:客户端启动成功后,可运行:SHOW VARIABLES WHERE Variable_name in(‘log_error’,‘slow_query_log_file’,‘general_log_file’),查看value值是否与配置文件中一致
![图片[26] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/dd79f554138645e29ac241bc0e08bf16.png)
10.验证数据文件是否挂载成功:客户端创建数据库和表,并向表中插入数据
![图片[27] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/f3a165938022488cbbee5813a6b68c6e.png)
11.验证数据文件是否挂载成功:运行docker stop mysql && docker rm mysql删除容器,重新运行容器
![图片[28] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/188090e31ad6406a8cc4c052885d5741.png)
12.验证数据文件是否挂载成功:客户端运行SELECT * FROM test_mount.t1,查询之前创建的表数据,如果数据未丢失,说明数据文件挂载成功
![图片[29] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/6a47f932c38548f0a478a65bee5683ce.png)
13.运行命令docker update mysql –restart=always持久化连接。当退出docker重新打开docker,mysql不会重新启动,此命令可保证docker重新打开mysql可以重新启动

八、Docker部署redis
1.打开命令行工具,运行docker pull redis,即可拉取redis;使用doctor search 需加上镜像源域名:docker search docker.1ms.run/redis
![图片[30] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/bc311ca4e28c4116a5e7be4e5b5aaaa6.png)
2.在本地创建映射文件夹redis>data、redis>redis.conf、redis>log>redis.log
![图片[31] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/f077912d47644ab59c7a9c4aa290722e.png)
3.访问:https://redis.io/docs/latest/operate/oss_and_stack/management/config/,查看对应版本的redis.conf并复制到redis>redis.conf
![图片[32] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/941f34deb67b41ea8f48ff343e984b5c.png)
4.修改配置文件中日志路径为/etc/log/redis.log、修改protected-mode off为protected-mode no、修改bind 127.0.0.1 -::1为bind 0.0.0.0 -::1
![图片[33] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/d94fd1a2de704e5396b21924a2473141.png)
5.打开cmd,使用下面命令运行redis容器
/*****
-p:主机端口:容器端口。
-d:启动的镜像名称。
--name:设置容器名称。
--restart=always:设置docker启动时,容器跟随自启。
redis-server /etc/redis.conf:启动redis镜像时指定配置文件进行启动
-v /f/Docker/home/redis/redis.conf:/etc/redis.conf:挂载容器配置文件到宿主,方便修改配置文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-v /f/Docker/home/redis/data:/data:挂载容器存储文件到宿主,避免因不小心卸载容器或者容器损坏导致数据丢失不可找回风险,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-v /f/Docker/home/redis/log/redis.log:/etc/log/redis.log:挂载日志文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
*****/
docker run --name redis --restart=always -p 6379:6379 -v /f/Docker/home/redis/data:/data -v /f/Docker/home/redis/redis.conf:/etc/redis.conf -v /f/Docker/home/redis/log/redis.log:/etc/log/redis.log -d redis redis-server /etc/redis.conf
![图片[34] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/98179046925b4cd88e02f3340e46b1b3.png)
6.客户端连接redis
![图片[35] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/542c0a853f7c4da580224a3665f006e4.png)
7.验证配置文件、日志文件是否挂载成功:查看本地日志文件,是否有日志写入即可
![图片[36] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/197864d0fd3c4fe0b35ccb6297aa9dd1.png)
8.验证数据文件是否挂载成功:通过脚本创建数据
![图片[37] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/1cedab9740434e52bcf3390e021b67da.png)
9.验证数据文件是否挂载成功:运行docker stop redis && docker rm redis删除容器,重新运行容器
![图片[38] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/96181a4353c54df59314ef5de28d4716.png)
10.验证数据文件是否挂载成功:客户端运行GET mykey,查询之前创建的表数据,如果数据未丢失,说明数据文件挂载成功

九、Docker部署mongo
1.打开命令行工具,运行docker pull mongo拉取mongo
![图片[39] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/1b5900765e7e491f8765ef5957e38127.png)
2.在本地创建映射文件夹mongo>data、mongo>mongod.conf、mongo>logs>mongo.log
![图片[40] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/fdadd78f4a7f416db6da0a258d991b7e.png)
3.修改配置文件,添加以下内容
# MongoDB 配置文件 (YAML 格式)
storage:
dbPath: /data/mongo/data # 数据库数据存放目录
systemLog:
destination: file # 日志输出到文件
path: /data/mongo/logs/mongod.log # 日志存放路径
logAppend: true # 追加方式记录日志
quiet: true # 过滤无用日志信息
net:
port: 27017 # 监听端口
bindIp: 0.0.0.0 # 绑定IP地址
security:
authorization: disabled # 用户认证 (false=disabled)
operationProfiling:
mode: off # 相当于 notablescan=false
4.打开cmd,使用下面命令运行mongo容器。docker run –name mongo -p 27107:27107 -d mongo
/*****
-p:主机端口:容器端口。
-d:启动的镜像名称。
--name:设置容器名称。
--restart=always:设置docker启动时,容器跟随自启。
redis-server /etc/redis.conf:启动redis镜像时指定配置文件进行启动
-v /f/Docker/home/mongo/mongo.conf:/etc/mongod.conf:挂载容器配置文件到宿主,方便修改配置文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-v /f/Docker/home/mongo/data:/data/mongo/data:挂载容器存储文件到宿主,避免因不小心卸载容器或者容器损坏导致数据丢失不可找回风险,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
-v /f/Docker/home/mongo/logs:/data/mongo/logs:挂载日志文件,,如果是linux系统宿主机不需要加盘符,直接使用/就代表宿主机的根目录
*****/
docker run --name mongo --restart=always -p 27017:27017 -v /f/Docker/home/mongo/data:/data/mongo/data -v /f/Docker/home/mongo/mongo.conf:/etc/mongod.conf -v /f/Docker/home/mongo/logs:/data/mongo/logs -d mongo mongod --config /etc/mongod.conf
![图片[41] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/b833440be26749eb83a2a4bc7ff57d02.png)
5.客户端连接mongo
![图片[42] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/76d11b5e90a947fe81251116d08553b6.png)
6.验证配置文件、日志文件是否挂载成功:查看本地日志文件,是否有日志写入即可
![图片[43] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/171690f55742464aa586f5bffe65b3b2.png)
7.验证数据文件是否挂载成功:通过脚本创建数据
![图片[44] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/1a469942c45e46a396630483ae42e496.png)
8.验证数据文件是否挂载成功:运行docker stop mongo && docker rm mongo删除容器,重新运行容器
![图片[45] - Docker 环境搭建与三大数据库(MySQL/Redis/MongoDB)部署教程 - 宋马](https://pic.songma.com/blogimg/20250602/537ddf741b5e46ba84f2a5bdfb3a2afa.png)
9.验证数据文件是否挂载成功:客户端运行db.test.find(),查询之前创建的表数据,如果数据未丢失,说明数据文件挂载成功






















暂无评论内容