Apple Containers on macOS – Early Setup and First Container
Apple’s container is an open-source CLI tool written in Swift that runs Linux containers as lightweight virtual machines on macOS. Announced at WWDC25, it is Apple’s native answer to Docker Desktop — no third-party runtime required.
The key difference from Docker and OrbStack: each container gets its own isolated micro-VM instead of sharing a single Linux VM. This gives stronger security isolation but means some Docker features (like container-to-container networking on macOS 15) are not yet available.
It uses standard OCI images — you pull from Docker Hub and any other container registry just like with Docker.
Requirements
- Apple Silicon Mac (M1 or later) — Intel is not supported
- macOS 15 Sequoia or later (macOS 26 Tahoe recommended for full functionality)
- Admin access for installation
Step 1 – Download and install
Go to the apple/container releases page and download the latest signed .pkg installer.
Double-click the .pkg file and follow the prompts. Enter your admin password when asked. This installs the container binary to /usr/local/bin/container.
Verify the install:
container --versionStep 2 – Pull an image
On first use, the tool will download a Linux kernel. Confirm when prompted.
Pull Alpine Linux:
container image pull alpine:latestList downloaded images:
container image lsStep 3 – Run your first container
container run alpine:latest echo "Hello from Apple Containers"You should see the output printed, then the container exits.
Step 4 – Run an interactive container
container run -it alpine:latest shInside the container:
uname -a
apk add curl
exitNote: uname -a shows you are inside a Linux environment — fully isolated from the host.
Step 5 – Run a container in the background
container run -d -p 8080:80 --name my-nginx nginx:latestOpen http://localhost:8080 to verify it is running.
Useful commands
| Command | What it does |
|---|---|
container run -it image sh |
Run an interactive container |
container run -d -p 8080:80 image |
Run in the background with port mapping |
container ls |
List running containers |
container ls -a |
List all containers including stopped |
container stop name |
Stop a container |
container rm name |
Remove a container |
container image ls |
List downloaded images |
container image pull image:tag |
Pull an image |
container image rm image |
Remove an image |
Note: Unlike Docker, the command to list containers is
container ls, notcontainer ps.
How it differs from Docker
| Docker / OrbStack | Apple Container | |
|---|---|---|
| Container isolation | Shared Linux VM | One micro-VM per container |
| Host OS | macOS, Linux, Windows | macOS only |
| CPU support | Apple Silicon + Intel | Apple Silicon only |
| Docker Compose | Yes | Not yet |
| Container networking | Full | Limited on macOS 15 |
| Maturity | Production ready | Early-stage |
For daily use and Docker Compose workflows, OrbStack is still the better option. Apple Container is worth exploring if you want stronger isolation or are curious about where macOS containerization is heading.