用途
OrbStack 是面向 macOS 的快速 Docker 与 Linux 虚拟机运行时,用于替代 Docker Desktop,提供更好的性能与无缝的 macOS 集成。本技能适用于使用 OrbStack Linux 虚拟机、在 macOS 上运行 Docker、执行 orbctl 命令或管理 orb 机器生命周期的场景。
主要能力
核心命令
机器生命周期管理:
orb list # 列出机器
orb create ubuntu:noble myvm # 创建(发行版:版本 名称)
orb create --arch amd64 ubuntu x86vm # 通过 Rosetta 进行 x86 模拟
orb create ubuntu myvm -c cloud.yml # 配合 cloud-init 创建
orb start/stop/restart/delete myvm
orb default myvm # 设置默认机器
Shell 与执行:
orb # 进入默认机器的 Shell
orb -m myvm -u root # 指定机器 + 用户
orb -m myvm ./script.sh # 在机器中运行命令
文件传输
orb push ~/local.txt # 复制到默认机器的 home 目录
orb pull ~/remote.txt # 从默认机器复制
orb push -m vm ~/f.txt /tmp/ # 指定机器 + 路径
Docker / Kubernetes
orb restart docker # 重启 Docker 引擎
orb logs docker # 查看 Docker 引擎日志
orb start k8s / orb delete k8s
配置
orb config set memory_mib 8192
orb config set cpu 4
orb config set rosetta true
orb config set network_proxy http://proxy:8080
关键路径
| 位置 | 路径 |
|---|---|
| 从 macOS 访问 Linux 文件 | ~/OrbStack/<machine>/ |
| 从 macOS 访问 Docker 卷 | ~/OrbStack/docker/volumes/ |
| 从 Linux 访问 macOS 文件 | /mnt/mac/Users/...(也可直接使用相同路径) |
| 从 Linux 访问其他机器 | /mnt/machines/<name>/ |
| SSH 密钥 | ~/.orbstack/ssh/id_ed25519 |
| Docker 守护进程配置 | ~/.orbstack/config/docker.json |
网络(OrbStack 特有)
Linux 机器中的服务器会自动在 macOS 的 localhost 上可用——无需端口映射。
DNS 名称:
| 模式 | 解析为 |
|---|---|
<machine>.orb.local |
Linux 虚拟机 |
<container>.orb.local |
Docker 容器 |
<svc>.<project>.orb.local |
Compose 服务 |
host.orb.internal |
macOS 主机(从 Linux 机器访问) |
host.docker.internal |
macOS 主机(从容器访问) |
所有 .orb.local 域名自动获得零配置 HTTPS。
自定义容器域名:docker run -l dev.orbstack.domains=myapp.local nginx
兼容 VPN;自动遵循 macOS 代理设置。
SSH 访问
单一多路复用 SSH 服务器——无需逐机器配置:
ssh orb # 默认机器
ssh myvm@orb # 指定机器
ssh user@myvm@orb # 指定用户 + 机器
IDE 配置:VS Code 的 "Remote - SSH" → orb 或 myvm@orb。JetBrains:主机 localhost,端口 32222,密钥 ~/.orbstack/ssh/id_ed25519。SSH agent 转发自动启用。
与 Docker Desktop 的差异
- 容器域名无需端口映射即可解析(使用 web.orb.local 而非 localhost:8080)。
- 优先使用命名卷而非绑定挂载——数据保留在 Linux 中,无跨文件系统开销。
- Apple Silicon 上运行 x86 镜像:
docker run --platform linux/amd64 ubuntu或export DOCKER_DEFAULT_PLATFORM=linux/amd64。 - 容器中的 SSH agent:
-v /run/host-services/ssh-auth.sock:/agent.sock -e SSH_AUTH_SOCK=/agent.sock。 - Kubernetes:所有服务类型均可从 macOS 访问,无需 kubectl port-forward;cluster.local DNS 可直接使用。
从 Linux 调用 macOS 命令
mac open https://example.com # 在 macOS 浏览器中打开
mac notify "Build done" # macOS 通知
ORBENV=AWS_PROFILE:EDITOR orb ./deploy.sh # 转发环境变量
故障排查
orb report # 生成诊断报告
orb logs myvm # 机器启动日志
orb restart docker # 重启 Docker 引擎
orb reset # 恢复出厂设置(删除所有内容)
docker context use orbstack # 修复 "cannot connect to Docker daemon"
Rosetta x86 错误:sudo dpkg --add-architecture amd64 && sudo apt install libc6:amd64
Cloud-init 调试:orb -m myvm cloud-init status --long 或 orb -m myvm cat /var/log/cloud-init-output.log
适用场景
- 在 macOS 上使用 Docker 进行容器化开发,希望获得比 Docker Desktop 更好的性能。
- 需要快速创建和管理 Linux 虚拟机,包括通过 Rosetta 运行 x86 架构。
- 使用 Kubernetes 本地集群并希望从 macOS 直接访问服务。
- 需要在 macOS 与 Linux 机器之间方便地传输文件、共享网络与 SSH 访问。
限制
资料未提供关于 OrbStack 的收费、价格、平台支持范围、性能基准或具体版本要求等信息,暂未提供。