Your laptop stopschoking on Docker.
container-orbit sends your Docker builds and containers to a beefier machine on your LAN — over plain SSH — while published ports come straight back to localhost. You keep working. Your fans stop spinning.
# on the beefy machine (once):
$ orbit host init
# on your laptop:
$ orbit link dany@192.168.1.42
$ orbit up
$ docker run -d -p 8080:80 nginx
$ curl localhost:8080 # → runs on the other box
✦ builds & RAM on the host · ports on your localhostOpen source · Docker Desktop · OrbStack · Rancher · colima · Rust CLI · MIT
Docker runs where you type. That's the bug.
Your laptop is the worst machine you own for running Docker — it's the one you also need for everything else. The compute should live somewhere else. Getting there usually means fragile SSH hacks and broken port mapping.
Docker melts your laptop
A big image build pins every core, drains the battery, and turns the fans into a jet engine. Meanwhile you can't type in your editor without lag.
That 64 GB tower sits idle
The gaming PC, the old Mac, the Linux box under the desk — all of them have RAM and cores to spare while your laptop suffocates. They're doing nothing.
Remote Docker leaks your ports
Set DOCKER_HOST=ssh:// and the build runs remotely — but -p 8080:80 now binds on the remote box. curl localhost:8080 hits nothing. The transparency breaks.
Standard Docker contexts.
Ports that follow you home.
Docker already speaks to remote daemons over SSH. orbit does the two things that make it actually usable every day: it sets everything up with one command per side, and it keeps your published ports reachable on your own localhost.
Your laptop
docker CLI · localhost
The beefy host
dockerd · RAM · disk
One command per machine
orbit host init on the host prints a join string. orbit link <user@host> on your laptop installs an SSH key, detects the remote socket (Docker Desktop, OrbStack, Rancher, colima), and creates a standard orbit docker context. Idempotent — safe to re-run.
A real docker context — not a wrapper
orbit forwards the remote daemon socket to a local unix socket and points the context at it. Because it's a stock context, docker, docker compose, and every tool that respects DOCKER_HOST just work. Nothing wraps or shadows your docker binary.
Ports reconciled on every event
orbit up opens one multiplexed SSH master and starts a reconciler. It subscribes to the daemon's event stream and keeps ssh -L tunnels in sync with the published ports — so -p 8080:80 on the host is curl localhost:8080 on your laptop, automatically.
Transparent, or it's not worth it.
The whole point is that Docker feels local while running somewhere else. Every feature exists to protect that illusion.
Automatic port forwarding
The magicThe core trick. orbit watches the remote daemon and opens/closes SSH tunnels as containers start and stop. Published ports are always live on your localhost — no manual -L juggling.
Standard docker context
orbit manages a normal docker context. No shim over the docker binary — full native compatibility with docker, compose, and anything that reads DOCKER_HOST.
Engine-agnostic
Auto-detects the remote socket for Docker Desktop, OrbStack, Rancher Desktop, or colima. Whatever the host runs, orbit finds it.
One multiplexed connection
A single SSH ControlMaster carries the daemon socket and every port tunnel. Low overhead, fast reconnects, clean teardown on orbit down.
orbit doctor
Actionable diagnostics: SSH reachability, remote daemon socket, the forwarded socket, docker context state — each with the exact fix when something is off.
Reversible by design
orbit up remembers your previous context; orbit down restores it and drops every tunnel. Your local Docker is exactly where you left it.
Seven commands. That's the manual.
No daemon to babysit, no config file to learn. Two commands set it up; the rest are there when you need them.
docker context gets you halfway.
A raw DOCKER_HOST=ssh:// runs the build remotely — then leaves your ports stranded on the wrong machine and the setup to you. orbit closes that last, most annoying gap.
Mac first. Every host next.
The host adapter is a trait — new platforms plug in without touching the core. Mac→Mac is done today.
Mac → Mac
The unix socket adapter. Full auto port-forwarding between two macOS machines on the same LAN. Linux hosts work the same way.
Mac → Windows (WSL2)
Reach the Docker socket inside a WSL2 distro through an SSH bridge, so your Windows gaming rig can be the host.
Windows-native + code sync
Named-pipe relay for Docker Desktop on Windows without WSL, plus optional source sync so bind-mounts and hot-reload work across machines.
Give Docker back
to the machine that can take it.
Get early access when container-orbit launches. Free and open source — always.
SSH transport · Docker Desktop · OrbStack · Rancher · colima · Rust CLI · MIT license