OrbStack — Docker and Linux Machines on the Mac
Practical guide to OrbStack — the fast, lightweight Docker Desktop alternative for macOS, with Linux machines, Kubernetes and DNS via the orb CLI.
OrbStack is a fast, lightweight macOS app for running Docker containers and full Linux machines – a leaner alternative to Docker Desktop. Instead of a heavy VM, it uses optimized virtualization that barely touches your CPU, RAM and battery and boots in seconds. Through the orb (and orbctl) CLI you manage machines, open shells, copy files and drive the built-in Kubernetes cluster. Handy: every machine automatically gets a .orb.local hostname and a ready-made SSH config. This guide walks you through the orb commands you reach for daily – from creating a Linux machine to your Docker and Kubernetes workflow.
Machine Lifecycle
orb create <distro> <name> — Create a new Linux machine with the given distro and name.
orb create ubuntu:24.04 myvmorb create <distro> — Create a Linux machine with an auto-generated name.
orb create debian:12orb start <name> — Start a stopped Linux machine.
orb start myvmorb stop <name> — Stop a running Linux machine.
orb stop myvmorb delete <name> — Delete a Linux machine and its data permanently.
orb delete myvmorb clone <source> <target> — Clone an existing Linux machine into a new one.
orb clone myvm myvm-copyorb rename <old> <new> — Rename an existing Linux machine.
orb rename myvm devboxShell & Exec
orb shell — Open an interactive shell in the default Linux machine.
orb shellorb shell <name> — Open an interactive shell in a specific Linux machine.
orb shell myvmorb shell -u <user> <name> — Open a shell as a specific user in the machine.
orb shell -u root myvmorb run <name> -- <command> — Execute a single command inside a Linux machine.
orb run myvm -- uname -aorb run -u <user> <name> -- <command> — Execute a command as a specific user inside a machine.
orb run -u root myvm -- apt-get updatessh orb — SSH into the default machine using OrbStack's built-in SSH config.
ssh orbssh <name>@orb — SSH into a named Linux machine.
ssh myvm@orbFile Transfer
orb push <name> <local_path> <remote_path> — Copy a file or directory from the host to a Linux machine.
orb push myvm ./app /home/user/apporb pull <name> <remote_path> <local_path> — Copy a file or directory from a Linux machine to the host.
orb pull myvm /var/log/syslog ./syslog.txtscp <local> <name>@orb:<remote> — Use standard SCP to copy files to a machine (OrbStack adds SSH config automatically).
scp ./config.yaml myvm@orb:/etc/app/config.yamlscp <name>@orb:<remote> <local> — Use standard SCP to copy files from a machine to the host.
scp myvm@orb:/var/log/app.log ./app.logListing & Info
orb list — List all Linux machines with their status and IP address.
orb listorb info — Show detailed info about the default machine (IP, CPU, memory, disk).
orb infoorb info <name> — Show detailed information about a specific Linux machine.
orb info myvmorb version — Show the installed OrbStack CLI and engine version.
orb versionorb status — Show the current status of the OrbStack engine (running, stopped, etc.).
orb statusDocker Integration
docker context ls — List all Docker contexts. OrbStack registers itself as the 'orbstack' context automatically.
docker context lsdocker context use orbstack — Switch the active Docker context to OrbStack.
docker context use orbstackdocker run -it ubuntu bash — Run Docker containers as usual — all standard Docker commands work with OrbStack.
docker run -it ubuntu bashdocker compose up -d — Use Docker Compose normally — OrbStack is fully Docker-compatible.
docker compose up -ddocker system df — Show OrbStack's Docker disk usage: images, containers, volumes, and build cache.
docker system dfdocker buildx build --platform linux/amd64,linux/arm64 -t name . — Multi-platform builds work out of the box with OrbStack's bundled buildx.
docker buildx build --platform linux/amd64,linux/arm64 -t my-app .Kubernetes
orbctl k8s start — Start the built-in single-node Kubernetes cluster.
orbctl k8s startorbctl k8s stop — Stop the Kubernetes cluster without deleting data.
orbctl k8s stoporbctl k8s reset — Reset the Kubernetes cluster to a clean state (destroys all workloads).
orbctl k8s resetkubectl config use-context orbstack — Switch kubectl to use the OrbStack Kubernetes cluster.
kubectl config use-context orbstackkubectl get nodes — Verify the OrbStack Kubernetes node is ready.
kubectl get nodeskubectl get pods -A — List all pods across all namespaces in the OrbStack k8s cluster.
kubectl get pods -AConfiguration & Updates
orb config — Show the current OrbStack configuration.
orb configorb config set <key> <value> — Set a configuration option for OrbStack.
orb config set defaultMachine myvmorbctl update — Check for and apply OrbStack updates.
orbctl updateorbctl restart — Restart the OrbStack engine (useful after config changes or if the engine hangs).
orbctl restartorbctl stop — Fully stop the OrbStack engine and all machines.
orbctl stopNetworking & DNS
ping myvm.orb.local — Every OrbStack machine gets a .orb.local hostname resolvable from macOS.
ping myvm.orb.localcurl http://myvm.orb.local:8080 — Access services running inside a Linux machine by hostname without port mapping.
curl http://myvm.orb.local:8080curl http://host.internal — Access the macOS host from inside a Linux machine or container using this special hostname.
curl http://host.internal:3000orb info <name> — Look up a machine's IP address to use for direct connections.
orb info myvmAvailable Linux Distros
orb create ubuntu <name> — Create an Ubuntu machine (latest LTS by default).
orb create ubuntu devboxorb create ubuntu:24.04 <name> — Create an Ubuntu 24.04 (Noble) machine.
orb create ubuntu:24.04 nobleorb create debian:12 <name> — Create a Debian 12 (Bookworm) machine.
orb create debian:12 bookwormorb create fedora <name> — Create a Fedora Linux machine.
orb create fedora fedora-devorb create arch <name> — Create an Arch Linux machine.
orb create arch arch-devorb create alpine <name> — Create a minimal Alpine Linux machine.
orb create alpine tinyorb create nixos <name> — Create a NixOS machine.
orb create nixos nix-dev Conclusion
OrbStack shows how much smoother container-based development on the Mac can be: fast startup, a light resource footprint and a seamless switch between Docker, full Linux machines and Kubernetes – all from a single CLI. If you currently rely on Docker Desktop, the move pays off above all for noticeably better battery life and the automatic .orb.local hostnames. Keep in mind that OrbStack runs on macOS only and requires a license for commercial use – it is free for personal use.
Further Reading
- OrbStack – official documentation – manual and CLI reference
- OrbStack – project site – feature overview and download
Related Commands
- ddev – container-based local dev environments for PHP and more
- docker – build, run and manage containers
- docker-compose – define multi-container setups declaratively