一、基于 yml 配置文件实现简单拓扑
基于存储卷和网络功能构建拓扑结构。
配置信息说明
-
Web 服务 (Nginx)
- 作用:作为网站服务器。
- 镜像:
nginx:latest - 端口映射:
8089:80,浏览器访问http://localhost:8089。 - 文件挂载:
./web:/usr/share/nginx/html,本地文件夹作为根目录。 - 依赖:需
redis和mysql启动成功后才启动。
-
MySQL 服务
- 作用:运行 MySQL 数据库。
- 镜像:
mysql:5.7 - 密码:root 用户密码为
root@123。 - 数据持久化:
./mysql:/var/lib/mysql,数据保存在本地目录。 - 健康检查:定期执行
SELECT 1;确认响应。
-
Redis 服务
- 作用:运行 Redis 缓存服务。
- 镜像:
redis:7 - 健康检查:通过
ping命令确认。
-
网络 (net1)
- 三个服务加入同一虚拟网络,可通过服务名互相访问。
验证与测试
- 检查配置格式无误。
- 按顺序启动(redis -> mysql -> web),容器连接正常。
- 查看网络详情,容器已连接至指定网络。
- 绑定卷目录同步完成。
- 访问 Nginx 时若发现内容缺失,通常因宿主机映射目录为空覆盖了容器默认内容,需确保宿主机目录有对应文件。
- 容器间可通过 curl 访问 Web 服务(默认 80 端口)。
- Redis 若无显式挂载,官方镜像默认声明匿名卷。
- 停止删除容器时,命名卷保留,匿名卷移除。
二、基于 nginx 实现代理访问 mysql 测试
架构说明
依赖关系:系统服务 -> MySQL -> Nginx。
服务定义
-
web - Nginx 网页服务器
- 端口:8765(对外)-> 80(容器内)
- 配置:本地
nginxconf文件夹 -> 容器配置目录 - 依赖:后端服务启动后才会启动
-
backend - 后端应用
- 代码:本地
app文件夹 -> 容器应用目录 - 依赖:数据库健康后才启动
- 代码:本地


