-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
A native macOS app for Apple's container — Linux
containers, container machines, images, networks and volumes — without dropping to a
terminal.
It isn't a wrapper around the CLI. The app links container's own Swift client libraries
and talks to its background services over XPC, so lists, lifecycle actions, pulls,
networks and volumes go through the same APIs the container command uses. The CLI is
shelled out to for four things only: system start, system stop, build, and opening a
shell in Terminal.app.
- Quick start — install, first container, first stack, in about five minutes.
- Examples — worked setups: WordPress, Gitea with a runner, a static site, a compose import.
| Section | What you get |
|---|---|
| Stacks | Several containers stood up as one unit — a network, volumes and services, wired together. Templates, custom stacks, or an imported docker-compose.yml. |
| Containers | Create, start, stop, kill, delete. Logs, an integrated terminal, export a filesystem. |
| Machines | Persistent Linux VMs with your home directory shared in — a place to work, not a place to run apps. |
| Images | Pull with progress, build from a Dockerfile, save and load OCI archives, find and delete unused ones. |
| Networks | NAT or host-only, custom CIDR, grouped by the stack that made them. |
| Volumes | Named storage that outlives containers, with sizes, labels and grouping. |
| Settings | Update checks for both the app and container, service restart, local DNS setup. |
Every list groups related items — by stack, by label, by what uses an image — and group headers collapse and stay collapsed. There's a menu bar item for status and quick access to running machines and stack web UIs when no window is open.
- A Mac with Apple silicon.
- macOS 26 or later.
-
container1.2.0 or later installed. The app is built against 1.2.1; a couple of features (exporting a container's filesystem) need that version. If your installed version is older, the app says so and offers to update it.
You don't need to start container's services yourself — if they aren't running, the app
shows a gate screen with a Start button. The first start downloads a Linux kernel and
can take a few minutes.
Containers reach each other by IP address, not by name. Container-name DNS doesn't
resolve inside container's networks, so a stack's services are wired together by
substituting real addresses when each container is created — see
how services find each other. It's handled for you,
including after a restart when addresses change, but it explains a lot of the app's
design if you're coming from docker-compose.
Local DNS gives you names, but only from your Mac —
my-app.test in your browser. It doesn't change how containers reach each other.
Getting started
Guides
- Stacks
- Stack definitions
- Importing docker-compose
- Machines
- Images and builds
- Networking and DNS
- Settings and updates
Help