今天从零起了一台新的 Hyper-V Ubuntu Server VM,并把 MFS 项目的 6 个 Docker 容器全部跑起来。
新建 VM
本来想让 Qwen Code 直接通过管理员 PowerShell 建 VM,但 Qwen 对 Windows Terminal 的适配很差——终端疯狂闪烁、跳动,根本没法用。于是放弃 CLI,直接在 Hyper-V 管理器里手动新建,剩下的配置全部在 VM 里面搞定。
最终 VM 配置:
- OS: Ubuntu 25.04 Server(Gen2 VM)
- 用户: jimmyuser1
- 网络: Default Switch,DHCP 拿到
172.24.97.180 - 磁盘: 20G VHD,LVM 默认只分配了 10G
Hyper-V 建 Gen2 VM 记得关 Secure Boot,不然 Linux ISO 起不来。
SSH 免密互通
从主 VM(ubuntuserver)推 ed25519 公钥到新 VM,配了 ~/.ssh/config 别名:
1 | Host ubsrv |
之后直接 ssh ubsrv 就行。
磁盘扩展
Ubuntu Server 的 LVM 默认只给 10G,VG 里还剩 8G 没用。两条命令扩满:
1 | sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv |
扩到 18G,可用 13G。
Docker 安装 + 镜像加速
1 | sudo apt-get install -y docker.io docker-compose-v2 |
Docker Hub 在国内直连超时,配了镜像加速(和主 VM 一样的源):
1 | {"registry-mirrors": ["https://docker.1panel.live", "https://hub.rat.dev"]} |
推项目 + 启动容器
rsync 排除 node_modules、env、.git 后只有 37M,几秒传完:
1 | rsync -az --exclude='node_modules' --exclude='env' --exclude='.git' \ |
然后分别启动 dev 和 test 两套 compose:
1 | sudo docker compose -f docker-compose.dev.yml up -d --build |
最终 6 个容器全部运行:
| 容器 | 端口 | 状态 |
|---|---|---|
| mfs-dev-mysql | 3306 | healthy |
| mfs-dev-api | 5000 | Up |
| mfs-dev-web | 4200 | Up |
| mfs-test-mysql | 3307 | healthy |
| mfs-test-api | 5001 | Up |
| mfs-test-web | 4201 | Up |
现在的架构
1 | Windows Host (Hyper-V) |
两台 VM 通过 Default Switch 互通,ssh ubsrv 一键直达。