关于 orbstack-best-practices
orbstack-best-practices 是面向 macOS 上 OrbStack 用户的实践指南,涵盖 Linux 虚拟机、Docker、网络和 SSH 的常用操作及排障。
主要功能
- 01管理 Linux 虚拟机生命周期
- 02配置 Docker 与容器网络
- 03通过 SSH 访问虚拟机
- 04从 Linux 调用 macOS 命令
- 05生成诊断报告并排障
适用场景
- 01创建和管理 OrbStack 虚拟机
- 02从 macOS 访问容器或服务
- 03排查 Docker 守护进程连接问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alleneubank/ claude-code --skill orbstack-best-practices安装后在 Claude Code 中输入/orbstack-best-practices确认已加载。
详细介绍
OrbStack 最佳实践
OrbStack 是一款适用于 macOS 的快速 Docker 和 Linux VM 运行时。它能以更出色的性能和无缝的 macOS 集成取代 Docker Desktop。
核心命令
# Machine lifecycle
orb list # List machines
orb create ubuntu:noble myvm # Create (distro:version name)
orb create --arch amd64 ubuntu x86vm # x86 emulation via Rosetta
orb create ubuntu myvm -c cloud.yml # With cloud-init
orb start/stop/restart/delete myvm
orb default myvm # Set default machine
# Shell and exec
orb # Shell into default machine
orb -m myvm -u root # Specific machine + user
orb -m myvm ./script.sh # Run command in machine
# File transfer
orb push ~/local.txt # Copy to default machine home
orb pull ~/remote.txt # Copy from default machine
orb push -m vm ~/f.txt /tmp/ # Specific machine + path
# Docker/K8s
orb restart docker # Restart Docker engine
orb logs docker # Docker engine logs
orb start k8s / orb delete k8s
# Config
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 VM |
<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 # Default machine
ssh myvm@orb # Specific machine
ssh user@myvm@orb # Specific user + machine
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:无需
kubectl port-forward,即可从 macOS 访问所有服务类型;cluster.localDNS 可直接使用。
从 Linux 运行 macOS 命令
mac open https://example.com # Open in macOS browser
mac notify "Build done" # macOS notification
ORBENV=AWS_PROFILE:EDITOR orb ./deploy.sh # Forward env vars
故障排除
orb report # Generate diagnostic report
orb logs myvm # Machine boot logs
orb restart docker # Restart Docker engine
orb reset # Factory reset (deletes everything)
docker context use orbstack # Fix "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
评论
支持 Markdown