apple/container is Apple’s native container tool for macOS, written in Swift for Apple silicon. Where Docker Desktop runs all containers in one shared Linux VM, it gives each container its own lightweight VM.1
Architecture
The container CLI talks to container-apiserver, a launchd service, which uses XPC helpers for images (container-core-images) and networking (container-network-vmnet) and runs one container-runtime-linux per container. It builds on Virtualization.framework, vmnet.framework, XPC, launchd, Keychain for registry credentials, and Unified Logging. The apple/containerization Swift package underneath handles OCI images, registries, ext4 filesystems, lightweight VMs, and vminitd, an init process exposing gRPC over vsock.1
Compared with Docker Desktop
| Docker Desktop | apple/container | |
|---|---|---|
| VM model | One Linux VM for all containers | One lightweight VM per container |
| Isolation | Linux namespaces | Hardware virtualization |
| Memory | Limit on the shared VM | Per-VM, by workload |
| File sharing | Selected host directories shared with the VM | Only what each container needs |
| Ecosystem | Mature, Compose and Kubernetes | Early stage |
As compared in the source. It uses standard OCI images and runs linux/amd64 containers through Rosetta 2.1
Limits at the time of writing
- Needs an Apple silicon Mac; macOS 26 is supported, and macOS 15 works with limitations (containers cannot talk to each other, no multiple networks, possible IP conflicts).
- Memory freed inside a container is not returned to macOS, so containers may need occasional restarts.
- Version 0.x: compatibility is guaranteed only within patch releases until 1.0.0.1
Related
- Ghostty workstation: the terminal setup on the same Macs.
- Domain index: other pages in this domain.