# OrbStack — Docker und Linux-Maschinen auf dem Mac

> Praxis-Guide zu OrbStack — der schnellen Docker-Desktop-Alternative für macOS, mit Linux-Maschinen, Kubernetes und DNS per orb-CLI.

Source: https://www.jpkc.com/db/cheatsheets/containers/orbstack/

<!-- PROSE:intro -->
OrbStack ist eine schnelle, ressourcenschonende macOS-App, mit der du Docker-Container und vollwertige Linux-Maschinen startest – eine leichtgewichtige Alternative zu Docker Desktop. Statt einer schweren VM nutzt OrbStack eine optimierte Virtualisierung, die kaum CPU, RAM und Akku beansprucht und in Sekunden startet. Über das CLI `orb` (bzw. `orbctl`) verwaltest du Maschinen, öffnest Shells, kopierst Dateien und steuerst den eingebauten Kubernetes-Cluster. Praktisch: Jede Maschine bekommt automatisch einen `.orb.local`-Hostnamen und eine fertige SSH-Konfiguration. Dieser Guide zeigt dir die wichtigsten `orb`-Befehle für den Alltag – vom Anlegen einer Linux-Maschine bis zum Docker- und Kubernetes-Workflow.
<!-- PROSE:intro:end -->

## Maschinen-Lebenszyklus

`orb create <distro> <name>` — Legt eine neue Linux-Maschine mit angegebener Distribution und Namen an.

```bash
orb create ubuntu:24.04 myvm
```

`orb create <distro>` — Legt eine Linux-Maschine mit automatisch generiertem Namen an.

```bash
orb create debian:12
```

`orb start <name>` — Startet eine gestoppte Linux-Maschine.

```bash
orb start myvm
```

`orb stop <name>` — Stoppt eine laufende Linux-Maschine.

```bash
orb stop myvm
```

`orb delete <name>` — Löscht eine Linux-Maschine samt ihren Daten endgültig.

```bash
orb delete myvm
```

`orb clone <source> <target>` — Klont eine bestehende Linux-Maschine in eine neue.

```bash
orb clone myvm myvm-copy
```

`orb rename <old> <new>` — Benennt eine bestehende Linux-Maschine um.

```bash
orb rename myvm devbox
```

## Shell & Befehle

`orb shell` — Öffnet eine interaktive Shell in der Standard-Linux-Maschine.

```bash
orb shell
```

`orb shell <name>` — Öffnet eine interaktive Shell in einer bestimmten Linux-Maschine.

```bash
orb shell myvm
```

`orb shell -u <user> <name>` — Öffnet eine Shell als bestimmter Benutzer in der Maschine.

```bash
orb shell -u root myvm
```

`orb run <name> -- <command>` — Führt einen einzelnen Befehl in einer Linux-Maschine aus.

```bash
orb run myvm -- uname -a
```

`orb run -u <user> <name> -- <command>` — Führt einen Befehl als bestimmter Benutzer in einer Maschine aus.

```bash
orb run -u root myvm -- apt-get update
```

`ssh orb` — Verbindet sich per SSH mit der Standard-Maschine über OrbStacks eingebaute SSH-Konfiguration.

```bash
ssh orb
```

`ssh <name>@orb` — Verbindet sich per SSH mit einer benannten Linux-Maschine.

```bash
ssh myvm@orb
```

## Dateitransfer

`orb push <name> <local_path> <remote_path>` — Kopiert eine Datei oder ein Verzeichnis vom Host in eine Linux-Maschine.

```bash
orb push myvm ./app /home/user/app
```

`orb pull <name> <remote_path> <local_path>` — Kopiert eine Datei oder ein Verzeichnis aus einer Linux-Maschine auf den Host.

```bash
orb pull myvm /var/log/syslog ./syslog.txt
```

`scp <local> <name>@orb:<remote>` — Kopiert Dateien per Standard-SCP in eine Maschine (OrbStack ergänzt die SSH-Konfiguration automatisch).

```bash
scp ./config.yaml myvm@orb:/etc/app/config.yaml
```

`scp <name>@orb:<remote> <local>` — Kopiert Dateien per Standard-SCP aus einer Maschine auf den Host.

```bash
scp myvm@orb:/var/log/app.log ./app.log
```

## Auflisten & Infos

`orb list` — Listet alle Linux-Maschinen mit Status und IP-Adresse auf.

```bash
orb list
```

`orb info` — Zeigt detaillierte Infos zur Standard-Maschine (IP, CPU, Speicher, Festplatte).

```bash
orb info
```

`orb info <name>` — Zeigt detaillierte Informationen zu einer bestimmten Linux-Maschine.

```bash
orb info myvm
```

`orb version` — Zeigt die installierte OrbStack-CLI- und -Engine-Version.

```bash
orb version
```

`orb status` — Zeigt den aktuellen Status der OrbStack-Engine (läuft, gestoppt usw.).

```bash
orb status
```

## Docker-Integration

`docker context ls` — Listet alle Docker-Kontexte auf. OrbStack registriert sich automatisch als Kontext „orbstack".

```bash
docker context ls
```

`docker context use orbstack` — Wechselt den aktiven Docker-Kontext zu OrbStack.

```bash
docker context use orbstack
```

`docker run -it ubuntu bash` — Startet Docker-Container wie gewohnt – alle Standard-Docker-Befehle funktionieren mit OrbStack.

```bash
docker run -it ubuntu bash
```

`docker compose up -d` — Nutzt Docker Compose wie gewohnt – OrbStack ist vollständig Docker-kompatibel.

```bash
docker compose up -d
```

`docker system df` — Zeigt OrbStacks Docker-Speichernutzung: Images, Container, Volumes und Build-Cache.

```bash
docker system df
```

`docker buildx build --platform linux/amd64,linux/arm64 -t name .` — Multi-Plattform-Builds funktionieren dank OrbStacks mitgeliefertem buildx ohne Zusatzaufwand.

```bash
docker buildx build --platform linux/amd64,linux/arm64 -t my-app .
```

## Kubernetes

`orbctl k8s start` — Startet den eingebauten Single-Node-Kubernetes-Cluster.

```bash
orbctl k8s start
```

`orbctl k8s stop` — Stoppt den Kubernetes-Cluster, ohne Daten zu löschen.

```bash
orbctl k8s stop
```

`orbctl k8s reset` — Setzt den Kubernetes-Cluster auf einen sauberen Zustand zurück (zerstört alle Workloads).

```bash
orbctl k8s reset
```

`kubectl config use-context orbstack` — Schaltet kubectl auf den OrbStack-Kubernetes-Cluster um.

```bash
kubectl config use-context orbstack
```

`kubectl get nodes` — Prüft, ob der OrbStack-Kubernetes-Node bereit ist.

```bash
kubectl get nodes
```

`kubectl get pods -A` — Listet alle Pods über alle Namespaces im OrbStack-k8s-Cluster auf.

```bash
kubectl get pods -A
```

## Konfiguration & Updates

`orb config` — Zeigt die aktuelle OrbStack-Konfiguration.

```bash
orb config
```

`orb config set <key> <value>` — Setzt eine Konfigurationsoption für OrbStack.

```bash
orb config set defaultMachine myvm
```

`orbctl update` — Sucht nach OrbStack-Updates und installiert sie.

```bash
orbctl update
```

`orbctl restart` — Startet die OrbStack-Engine neu (nützlich nach Konfigurationsänderungen oder wenn die Engine hängt).

```bash
orbctl restart
```

`orbctl stop` — Stoppt die OrbStack-Engine und alle Maschinen vollständig.

```bash
orbctl stop
```

## Netzwerk & DNS

`ping myvm.orb.local` — Jede OrbStack-Maschine bekommt einen `.orb.local`-Hostnamen, der von macOS aus auflösbar ist.

```bash
ping myvm.orb.local
```

`curl http://myvm.orb.local:8080` — Erreicht Dienste in einer Linux-Maschine per Hostname, ohne Port-Mapping.

```bash
curl http://myvm.orb.local:8080
```

`curl http://host.internal` — Erreicht den macOS-Host aus einer Linux-Maschine oder einem Container über diesen speziellen Hostnamen.

```bash
curl http://host.internal:3000
```

`orb info <name>` — Ermittelt die IP-Adresse einer Maschine für direkte Verbindungen.

```bash
orb info myvm
```

## Verfügbare Linux-Distributionen

`orb create ubuntu <name>` — Legt eine Ubuntu-Maschine an (standardmäßig die aktuelle LTS).

```bash
orb create ubuntu devbox
```

`orb create ubuntu:24.04 <name>` — Legt eine Ubuntu-24.04-Maschine (Noble) an.

```bash
orb create ubuntu:24.04 noble
```

`orb create debian:12 <name>` — Legt eine Debian-12-Maschine (Bookworm) an.

```bash
orb create debian:12 bookworm
```

`orb create fedora <name>` — Legt eine Fedora-Linux-Maschine an.

```bash
orb create fedora fedora-dev
```

`orb create arch <name>` — Legt eine Arch-Linux-Maschine an.

```bash
orb create arch arch-dev
```

`orb create alpine <name>` — Legt eine minimale Alpine-Linux-Maschine an.

```bash
orb create alpine tiny
```

`orb create nixos <name>` — Legt eine NixOS-Maschine an.

```bash
orb create nixos nix-dev
```

<!-- PROSE:outro -->
## Fazit

OrbStack zeigt, wie viel angenehmer containerbasierte Entwicklung auf dem Mac sein kann: schneller Start, geringer Ressourcenhunger und ein nahtloser Wechsel zwischen Docker, vollwertigen Linux-Maschinen und Kubernetes – alles über ein einziges CLI. Wenn du bisher Docker Desktop nutzt, lohnt sich ein Umstieg vor allem wegen der spürbar besseren Akkulaufzeit und der automatischen `.orb.local`-Hostnamen. Beachte, dass OrbStack ausschließlich auf macOS läuft und für die kommerzielle Nutzung eine Lizenz erfordert – privat ist es kostenlos.

## Weiterführende Links

- [OrbStack – offizielle Dokumentation](https://docs.orbstack.dev/) – Handbuch und CLI-Referenz (englisch)
- [OrbStack – Projektseite](https://orbstack.dev/) – Funktionsüberblick und Download (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [ddev](https://www.jpkc.com/db/cheatsheets/containers/ddev/) – containerbasierte lokale Dev-Umgebungen für PHP & Co.
- [docker](https://www.jpkc.com/db/cheatsheets/containers/docker/) – Container bauen, starten und verwalten
- [docker-compose](https://www.jpkc.com/db/cheatsheets/containers/docker-compose/) – Multi-Container-Setups deklarativ definieren

