跳至主要內容

从 Docker Desktop 迁移到 OrbStack:一次丝滑的容器体验升级

约 1295 字大约 4 分钟

从 Docker Desktop 迁移到 OrbStack:一次丝滑的容器体验升级

如果你也是 macOS 用户,并且正在使用 Docker Desktop 进行容器开发,那么 OrbStack 绝对值得你花 10 分钟来体验一下。本文将从安装、配置、迁移到踩坑,完整记录这次迁移的全过程。


一、为什么想换?

Docker Desktop 在 macOS 上的痛点,相信不少人都有共鸣:

  • 🐢 启动慢:冷启动动辄几十秒,等待 VM 启动和 daemon 连接
  • 💰 收费:2021 年起对非个人/非小型企业用户开始收费,且功能被切割
  • 💾 内存占用高:即使空闲时,VM 也会常驻大量内存
  • 🔧 配置复杂:资源限制、网络配置、磁盘映射都需要手动调
  • 🐛 稳定性:时不时遇到 "connection refused"、镜像拉取失败等问题

OrbStack 作为 macOS 上的容器运行时替代方案,主打轻量、快速、原生集成,号称能做到秒级启动,而且对个人用户永久免费


二、OrbStack 是什么?

OrbStack 是一个基于 Wasm(WebAssembly)的容器运行时,专门为 macOS 设计。它不依赖传统的 Linux VM(如 Docker Desktop 使用的 gVisor 或 HyperKit),而是通过 macOS 内核的原生网络栈和文件系统,直接运行容器。

核心优势:

对比项Docker DesktopOrbStack
启动速度10-30 秒<1 秒
内存占用4GB+(默认)~200MB
文件系统速度较慢(gRPC FUSE)原生 macOS 文件系统
免费策略仅个人/小团队个人用户永久免费
网络需手动配置自动分配宿主机可达 IP
镜像格式OCIOCI(兼容)
CLIdockerdocker(完全兼容)

三、安装 OrbStack

3.1 下载安装

前往官网:https://orbstack.dev/

下载 .dmg 安装包,拖入 Applications 即可。

3.2 启动配置

首次启动时 OrbStack 会要求设置一些参数:

OrbStack Configuration
├─ Container runtime:  Linux / Windows
├─ Memory:             4 GB(推荐 8GB+)
├─ CPU:                4 cores
├─ Storage:            60 GB
└─ Enable Docker CLI:  ✅ 默认开启

保持默认即可,后续可以在设置面板调整。

3.3 验证安装

终端运行:

docker --version
docker ps
docker info

如果正常输出,说明迁移成功,docker 命令仍然可用,无需修改任何脚本。


四、迁移现有项目

4.1 导入已有镜像

Docker Desktop 的镜像可以直接导入:

# 在 Docker Desktop 中导出
docker save my-image -o my-image.tar

# 在 OrbStack 中导入
docker load -i my-image.tar

4.2 迁移 Docker Compose 项目

大多数 docker-compose.yml 无需修改即可直接使用:

docker compose up -d

4.3 迁移 Dockerfile 构建的镜像

docker build -t my-app ./my-project/

完全兼容,无需改 Dockerfile。

4.4 迁移 Docker Volume 数据

⚠️ 这是最容易踩坑的地方!

Docker Volume 数据不会自动迁移,需要手动导出再导入:

# 在 Docker Desktop 中
docker run --rm -v my-vol:/data alpine tar czf /tmp/data.tar.gz -C /data .

# 导入到 OrbStack
docker run --rm -v my-vol-new:/data -v $(pwd):/tmp alpine sh -c "tar xzf /tmp/data.tar.gz -C /data"

如果是简单目录挂载(-v ./data:/app/data),直接用宿主机路径即可,无需迁移。


五、OrbStack 的独特功能

5.1 原生宿主机可达网络

OrbStack 为每个容器自动分配一个宿主机可访问的 IP,无需手动映射端口:

docker run -d --name my-app nginx
docker inspect my-app --format '{{.NetworkSettings.IPAddress}}'
# 输出: 127.0.0.1(自动分配,浏览器直接访问)

5.2 多运行时切换

同一台机器可以同时运行 Linux 容器Windows 容器

orb settings runtime linux   # 切换 Linux
orb settings runtime windows # 切换 Windows

5.3 Wasm 容器支持

OrbStack 原生支持 Wasm 容器,这是 Docker Desktop 不具备的:

docker run --rm --platform wasi/wasm cloudwego/helloworld

5.4 资源控制

# 查看当前资源使用
orb stats

# 调整内存限制
orb settings memory 8192

六、踩坑记录

6.1 镜像拉取慢

OrbStack 默认镜像仓库在国内访问较慢,建议配置镜像加速器:

orb settings registry-mirror add https://mirror.ccs.tencentyun.com

或者使用国内镜像源配置到 Docker 配置中:

# 编辑 ~/.docker/daemon.json
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://hub-mirror.c.163.com"
  ]
}

6.2 Docker Volume 不兼容

如前所述,Docker Volume 数据需要手动迁移。如果项目依赖 Volume 存储数据,提前导出。

6.3 企业版功能缺失

OrbStack 对非个人用户(企业)仍提供功能,但与 Docker Desktop 的企业级功能(如内容信任、镜像签名等)相比仍有差距。

6.4 某些系统调用不兼容

极少数依赖特定 Linux 内核特性的容器(如某些 GPU 加速场景)可能无法完美运行。


七、总结

项目评价
迁移难度⭐⭐ 低(镜像和 Compose 无需改)
启动速度⭐⭐⭐⭐⭐ 秒级
资源占用⭐⭐⭐⭐⭐ 极低
功能完整度⭐⭐⭐⭐ 满足个人开发需求
稳定性⭐⭐⭐⭐ 基本无问题

推荐场景:

  • ✅ 个人开发、学习、小型项目
  • ✅ CI/CD 本地调试
  • ✅ 需要快速启动/停止容器的场景
  • ❌ 企业级生产环境(功能仍有差距)
  • ❌ 需要 GPU 加速的容器

一句话总结:OrbStack 是 macOS 开发者在 Docker Desktop 之外最轻量、最优雅的替代选择。如果你只是用来本地开发和调试,迁移过来只会让你更爱容器。


📝 文章作者:Buterr
📅 更新时间:2026-07-15
🏷️ 标签:Docker, OrbStack, macOS, 容器