Docker
容器化堆栈
主机操作系统
Docker
通过代码定义镜像、容器、网络和卷。
相同应用,不同执行模型。
在 compose.yaml 中定义的容器化堆栈
主机操作系统
Docker
网络:app-net
卷:db-data、redis-data
▤compose.yaml
在 compose.yaml 中定义的容器化堆栈。
主机操作系统上的原生服务
主机操作系统
主机操作系统上的原生服务。
两款工具的目标都是提供可用环境,但实现路径不同。
FlyEnv 直接将 PHP、MySQL、Redis 和 Nginx 作为主机原生服务运行。Docker 则将它们组织为镜像、容器、网络和卷,与主机之间保持强隔离。
FlyEnv 为本地开发提供更简单的思路,普通本地服务无需编写 Dockerfile 或 Compose 文件。Docker 的环境定义随项目一起保存,可让开发环境与 CI、预发布和生产保持一致。
FlyEnv:在图形界面选择版本、启动服务、创建站点。Docker:在 compose.yaml 中定义服务,再用一条命令启动整个堆栈。
相同堆栈,两种不同工作流。

FlyEnv 服务可在桌面应用中安装、启动和停止,并统一管理版本、端口和配置。
services:
app: # image, ports, volumes
db: # image, environment
redis: # image, networks
Docker 服务以 YAML 中的镜像、端口、卷和网络声明,形成精确且可版本控制的环境定义。
Docker 的优势在于同一套定义可运行于 CI、预发布和生产环境;FlyEnv 则专注于本地计算机体验。
比较的是运行模式,而不是功能数量——两者都能构建完整的本地环境。
| 能力 | Docker / Docker Compose | FlyEnv |
|---|---|---|
| 执行模式 | 容器 | 主机原生进程 |
| 环境定义 | Dockerfile / Compose YAML | 图形界面和项目配置 |
| 隔离 | 强容器隔离 | 主机级服务 |
| 生产环境可移植性 | 强 | 不是主要目标 |
| CI/CD 可移植性 | 强 | 有限 / 非主要目标 |
| 本地域名 / HTTPS | 通过堆栈或代理配置 | 内置本地站点工作流 |
| 运行时版本 | 容器镜像标签 | 托管的本地版本 |
| 数据库服务 | 容器镜像 | 托管的原生模块 |
| 网络 | Docker 网络 | 主机网络 |
| 卷 | Docker 卷 / 绑定挂载 | 原生文件系统 |
| 项目启动 | docker compose up | 图形界面和启动组 |
| 资源开销 | 取决于操作系统的 Docker 运行时或虚拟机 | 原生进程 |
| 图形界面管理 | Docker Desktop 和工具 | FlyEnv |
| 最适合 | 可移植、可复现的容器环境 | 原生本地开发 |
并排查看同类工作的处理方式。
使用 Docker
编写或选择 Dockerfile 和镜像
使用 FlyEnv
选择 PHP 版本
使用 Docker
创建 compose.yaml
使用 FlyEnv
创建本地站点
使用 Docker
配置端口
使用 FlyEnv
启动数据库和缓存
使用 Docker
配置卷
使用 FlyEnv
启用 HTTPS
使用 Docker
配置网络
使用 FlyEnv
启动项目服务
使用 Docker
使用 docker compose up 启动
使用 FlyEnv
打开站点并开始开发
Docker 的额外配置也正是环境能够在不同计算机和部署阶段之间移植并复现的原因。
两款工具都很有用,正确选择取决于你的工作流。
FlyEnv 和 Docker 并不互斥——许多团队在本地使用原生服务,在其他环境使用容器。
不能。FlyEnv 管理原生本地服务;Docker 将应用打包到容器中。两者解决不同问题,也可以结合使用。
当生产一致性、隔离性或可复现的 CI/预发布环境很重要,或者项目已经提供 compose.yaml 时。
当你希望获得快速的原生本地环境,统一管理运行时、本地域名和 HTTPS,且不想编写 Dockerfile 或 Compose 文件时。
可以——常见做法是日常原生开发使用 FlyEnv,CI、集成测试或要求容器一致性的项目使用 Docker;请避免两者端口冲突。
不使用。FlyEnv 在 macOS、Windows 和 Linux 上以宿主机上的原生进程方式运行各运行时和服务。
默认不会。通常需要自行添加反向代理(Traefik、nginx-proxy)和证书(mkcert 或 CA);FlyEnv 内置了用于域名和 HTTPS 的本地站点工作流。
如果团队使用容器部署,Docker 的 compose.yaml 是最明确的团队统一配置约定;对于在 macOS、Windows 和 Linux 上进行原生开发的团队,FlyEnv 可提供一致的桌面工作流。
可以——compose 文件保持不变;你可以在 FlyEnv 中原生运行应用的运行时和服务,也可以继续为该项目使用 Docker。
创建本地站点,选择所需运行时和服务,然后开始工作——无需容器。