Getting started
Introduction
OrbStack is a fast, lightweight Docker Desktop alternative + Linux machine manager for macOS. Built with native Swift, it uses ~0.1% idle CPU, releases memory dynamically, and starts in 2 seconds.
Requirements: macOS 13.0+
Installation
# Install via Homebrew
brew install orbstack
# Or download from
# https://orbstack.dev
Auto-installs: docker, docker compose, docker buildx, kubectl, orb, orbctl
Migration from Docker Desktop
# Migrate Docker Desktop data
orb docker migrate
# Switch to OrbStack
docker context use orbstack
# Switch back to Docker Desktop
docker context use desktop-linux
Linux Machines
Creating machines
# Create Ubuntu machine
orb create ubuntu my-machine
# Specific version
orb create ubuntu:jammy my-machine
# x86 on Apple Silicon
orb create --arch amd64 ubuntu my-x86
# With password
orb create --set-password ubuntu my-vm
Available distros: Ubuntu, Debian, Fedora, Arch, Alpine, NixOS, Alma, CentOS, Rocky, Oracle, openSUSE, Devuan, Gentoo, Kali, Void
Managing machines
orb list # List all machines
orb start <machine> # Start machine
orb stop <machine> # Stop machine
orb restart <machine> # Restart machine
orb delete <machine> # Delete machine
orb rename <old> <new> # Rename machine
orb default <machine> # Set default machine
orb info <machine> # Machine info
orb logs <machine> # Boot logs
Shell access
# Shell into default machine
orb
# Shell into specific machine
orb -m my-machine
# Specific machine + user
orb -m my-machine -u my-user
# Run command on default
orb uname -a
# Run on specific machine
orb -m my-machine uname -a
Docker Integration
Docker commands
OrbStack provides full Docker CLI compatibility as a drop-in replacement.
# Docker socket location
/var/run/docker.sock
# View Docker config
orb config docker
# Restart Docker engine
orb restart docker
# View Docker logs
orb logs docker
x86 emulation
Uses Rosetta (2x faster than QEMU on Apple Silicon)
# Run x86 container
docker run -it --rm \
--platform linux/amd64 alpine
# Set default platform
export DOCKER_DEFAULT_PLATFORM=linux/amd64
SSH agent forwarding
docker run -it --rm \
-v /run/host-services/ssh-auth.sock:/agent.sock \
-e SSH_AUTH_SOCK=/agent.sock \
alpine
SSH Access
SSH configuration
Built-in SSH server on port 32222
Key location: ~/.orbstack/ssh/id_ed25519
SSH connections
# Default machine
ssh orb
# Specific machine
ssh ubuntu@orb
# Specific user
ssh myuser@orb
# Specific user + machine
ssh myuser@ubuntu@orb
VS Code integration
- Install "Remote - SSH" extension
- Connect to
orbhost - Access Linux machines directly
File Sharing
Mac ↔ Linux paths
# Mac files from Linux
/Users/foo/...
/mnt/mac/Users/foo/...
# Linux files from Mac
~/OrbStack/<machine-name>/
# Docker volumes from Mac
~/OrbStack/docker/volumes/
# Docker images from Mac
~/OrbStack/docker/images/
File transfer commands
# Linux → Mac
orb pull ~/foo.txt
# Mac → Linux
orb push ~/bar.txt
# To specific machine
orb push -m my-machine ~/bar.txt /dest/
Networking
Domain names
# Container domains
container-name.orb.local
# Compose domains
service.project.orb.local
# Machine domains
machine-name.orb.local
# Index page
http://orb.local
# Automatic HTTPS
https://container-name.orb.local
Custom domains
# Single domain
docker run \
-l dev.orbstack.domains=foo.local \
nginx
# Multiple domains
docker run \
-l dev.orbstack.domains=foo.local,bar.local \
nginx
# Wildcard domains
docker run \
-l dev.orbstack.domains=*.foo.local \
nginx
# Custom port
docker run \
-l dev.orbstack.http-port=8080 \
nginx
Special hostnames
# Mac from container
host.docker.internal
# Mac from machine
host.orb.internal
# Docker from machine
docker.orb.internal
Throughput:
- Mac ↔ Linux: 45 Gbps
- Machine ↔ Machine: 115 Gbps
Proxy configuration
# HTTP proxy
orb config set network_proxy http://example.com
# HTTPS with auth
orb config set network_proxy \
https://user:password@example.com:8443
# SOCKS5
orb config set network_proxy \
socks5://user:password@example.com:1081
# System proxy
orb config set network_proxy auto
# Disable proxy
orb config set network_proxy none
Kubernetes
Cluster management
# Start cluster
orb start k8s
# Stop cluster
orb stop k8s
# Restart cluster
orb restart k8s
# Delete cluster
orb delete k8s
Local images
Set imagePullPolicy: IfNotPresent in your manifests to use local Docker images.
Service access from Mac
# cluster.local domains
curl service.namespace.svc.cluster.local
# LoadBalancer/Ingress
*.k8s.orb.local
# NodePort
localhost:PORT
# ClusterIP
# Access directly by IP
# Pod IPs
# Directly accessible
Ingress-NGINX setup
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
Mac Integration
Mac commands from Linux
# Run Mac command
mac uname -a
# Link command for direct use
mac link pbcopy
# Unlink command
mac unlink pbcopy
# Mac notification
mac notify "Title" "Body"
Pre-linked commands
These work directly without mac prefix:
openosascriptcode
macOS binary execution
macOS executables run directly via binfmt_misc:
# Compile and run macOS binary
mac gcc -o foo foo.c && ./foo
Configuration
System settings
# Enable Rosetta
orb config set rosetta true
# Memory limit (MB)
orb config set memory_mib 8192
# CPU % limit
orb config set cpu 50
# Expose SSH on LAN
orb config set ssh.expose_port true
# Docker Swarm node name
orb config set docker.node_name mynode
Reset options
# Clear Docker data
orb delete docker
# Factory reset
orb reset
orb Commands Reference
Main commands
| Command | Description |
|---|---|
orb |
Shell into default machine |
orb create |
Create new machine |
orb list |
List machines |
orb start |
Start machine |
orb stop |
Stop machine |
orb restart |
Restart machine |
orb delete |
Delete machine |
orb info |
Machine information |
orb logs |
View machine logs |
Other commands
| Command | Description |
|---|---|
orb config |
Configuration management |
orb default |
Set default machine |
orb docker |
Docker commands |
orb k8s |
Kubernetes commands |
orb migrate |
Migration tools |
orb pull |
Pull file to Mac |
orb push |
Push file to Linux |
orb rename |
Rename machine |
orb reset |
Factory reset |
orb ssh |
SSH configuration |
orb status |
System status |
orb update |
Update OrbStack |
orb version |
Show version |
Also see
- OrbStack Official Site - Download and documentation
- OrbStack Docs - Complete documentation
- Docker CLI Reference - Docker commands
- Kubernetes Docs - Kubernetes reference