Skip to content
Bart Reardon edited this page Aug 9, 2026 · 4 revisions

ContainerManager

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.

Download the latest release

Start here

  • 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.
  • Fleet GitOps lab — the long one: a Fleet server, a Git server and CI that configures Fleet on every push, all on one Mac.

What it does

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.

Requirements

  • A Mac with Apple silicon.
  • macOS 26 or later.
  • container 1.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.

The one thing worth knowing up front

Out of the box, containers reach each other by IP address, not by name. Nothing resolves container names until a DNS domain is configured, 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.

You can turn names on. Settings ▸ Local DNS configures container's local domain, after which containers resolve each other by name — db or db.test — as well as being reachable that way from your Mac. It needs your administrator password once, so the app doesn't assume it and stacks keep working either way.

Clone this wiki locally