SuperAPI AI 工具集

orbstack-best-practices

部署与运维

查看项目

更新于 10-15 11:59

技能介绍

用途

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 的收费、价格、平台支持范围、性能基准或具体版本要求等信息,暂未提供。