806 字
约 2 分钟
8
S15-A03 · 多平台安装与中间件编排
适用读者:要在 Windows/macOS/Linux 上搭同一套环境的人。
前置:S15-J04、S15-J05。
覆盖旧文:318(133) 1244(92) 1245(29) 1246(58) 1247(69) 1248(69) 1272(66) 1273(16) 1274(46) 1276(88) 1277(60) 1278(77) 1279(54) 1240(2) = 859 点(含 S07 移交的 WSL2 卡)。
上一篇:S15-A02 · 容器化部署与 CI/CD
下一篇:S15-X01 · 八股速查。
1. 一句话结论
"多平台一致"的正确解法不是"每个系统各写一套文档",而是"用容器把差异压到 Docker Desktop 一层"。
| 平台 | 容器运行时 | 差异点 |
|---|---|---|
| Linux | 原生 Docker | 最直接 |
| Windows | Docker Desktop(WSL2 后端) | 路径/换行/文件权限 |
| macOS | Docker Desktop(虚拟化) | 文件挂载性能 |
2. WSL2:Windows 上跑 Linux 容器的前提
| 点 | 说明 |
|---|---|
| 启用 | wsl --install(Win10 2004+) |
| 后端 | Docker Desktop 用 WSL2 而非 Hyper-V |
| 文件性能 | 代码放 WSL 文件系统(/home/...)比 /mnt/c 快得多 |
| 换行 | Git 配 core.autocrlf,脚本注意 LF |
判据:"构建慢得离谱吗?" 检查代码是否在 /mnt/c——跨文件系统挂载是常见性能杀手。
3. 中间件编排:一套 compose 多处复用
# compose.yaml(开发)
services:
mysql: { image: mysql:8.0, environment: [MYSQL_ROOT_PASSWORD=dev], ports: ["3306:3306"] }
redis: { image: redis:7-alpine, ports: ["6379:6379"] }
minio: { image: minio/minio, command: server /data, ports: ["9000:9000"] }
| 环境 | 差异 | 做法 |
|---|---|---|
| 开发 | 暴露端口、弱密码 | compose.yaml |
| 测试 | 同开发 | 继承 |
| 生产 | 不暴露端口、强密码、资源限制 | compose.prod.yaml 覆盖 |
docker compose -f compose.yaml -f compose.prod.yaml up -d
判据:"这个差异是"环境"还是"业务"?" 环境差异用覆盖文件,别复制两份 compose。
4. 中间件安装的共性(覆盖 278/1276/1277/1279 等)
| 中间件 | 关键点 |
|---|---|
| MySQL | 数据卷 + --character-set-server=utf8mb4 |
| Redis | 数据卷 + appendonly yes(S12-B04) |
| MinIO | 端口 + 子域名 + HTTPS(反向代理,A01) |
| ZooKeeper | 单机开发足够,集群需奇数 |
| Jenkins | 数据卷 + 权限(挂 docker.sock 有风险) |
"为什么不建议挂 docker.sock":等于把宿主机 root 权限交给容器里的 CI——生产要用独立 runner。
5. 五个误区
| 误区 | 真相 |
|---|---|
| "每个系统装一遍就行" | 版本漂移,环境不一致 |
"WSL 里代码放 /mnt/c 无所谓" |
构建会慢数倍 |
| "开发和生产用同一份 compose" | 生产不该暴露端口/弱密码 |
| "Jenkins 挂 docker.sock 很方便" | 权限过高 |
| "k8s 能替代 compose" | 规模不同,别过度设计 |
6. 自检(架构师版)
- 三平台容器运行时的差异?
- WSL2 的文件性能陷阱?
- 开发/生产 compose 怎么复用?
- 挂
docker.sock的风险? - 什么规模才需要 k8s?
7. 下一篇
S15-X01 · Linux/Docker 八股速查
最后一篇是附录索引,随后进入 S17(分布式与消息队列)。
本篇属于系列《S15 · Linux 与运维》。旧文来源:A-318/1244/1245/1246/1247/1248/1272/1273/1274/1276/1277/1278/1279/1240 + S07 移交的 WSL2 卡(A-320)。
S15-A03 · 多平台安装与中间件编排
https://www.clxhxhhr.top/posts/5403/ 评论
0 条
还没有评论,先写一条吧。