TopGit
GitHub Repo Review

container: Apple's Native Container Runtime

apple/container
CTopGit review image for apple/container
Review by Topgit.dev for apple/container, with GitHub repository stats and README context.
Quick verdict

`container` is Apple's own command-line tool for running Linux containers as lightweight virtual machines on a Mac, built for Apple silicon. It handles standard OCI images, so pulling and running images works without Docker Desktop's shared-VM model. Reach for it on macOS 26 if you want per-container VM isolation under an Apache-2.0 license; skip it on an older macOS release or if you need Linux or Windows hosts, since neither is supported.

Stars
★ 50.0k
Forks
⑂ 1.8k
Language
Swift
License
Apache-2.0
Topic
Updated
Sep 2026
Homepage
GitHub

What is the `container` Tool?

`container` is a tool built by Apple that creates and runs Linux containers as lightweight virtual machines on a Mac, written in Swift and optimized for Apple silicon. It consumes and produces OCI-compatible container images, so you can pull from and push to any standard registry. Under the hood it relies on the separate Containerization Swift package that manages low-level container, image, and process operations rather than reimplementing that layer.

Key Capabilities

  • Consumes and produces OCI-compatible container images, so you can pull and push to any standard registry and run the resulting images in other OCI-compatible tools, per the README.
  • Each container runs in its own lightweight Linux virtual machine on the Mac, rather than containers sharing one VM.
  • Built on the separate Containerization Swift package that manages low-level containers, images, and processes.
  • Written in Swift and optimized for Apple silicon, per the repo description.
  • Runs as a system service you start and stop with `container system start` and `container system stop`.
  • Distributed as a signed installer package from the GitHub release page, installed under `/usr/local`.
  • Upgrades and downgrades are handled by the `update-container.sh` and `uninstall-container.sh` scripts, with flags to keep (`-k`) or remove (`-d`) user data.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Getting Started with `container`

You need a Mac with Apple silicon; the README states `container` is supported on macOS 26 and that older macOS versions aren't supported, since it depends on virtualization and networking features new in that release. Download the latest signed installer package from the GitHub release page, double-click it, and enter your administrator password when prompted — the installer places files under `/usr/local`. Start the background service with `container system start`. To build `container` from source instead, the README points to a separate BUILDING.md document rather than listing build steps inline. Upgrading later can be done with the `/usr/local/bin/update-container.sh` script after stopping the running service with `container system stop`.

Running Your First Container

The README's first example is `container run --rm alpine echo hello`: it pulls the `alpine` image, runs it inside a lightweight Linux VM, prints `hello`, and removes the container once it exits. For a fuller walkthrough that builds and publishes an image of your own, the README points to a tutorial at docs/tutorials/start-here.md, plus a separate how-to doc and a full command reference for exploring the rest of the CLI.

Strengths

  • Apache-2.0 licensed, per the GitHub license field, with no proprietary terms attached.
  • Produces and consumes standard OCI-compatible images, so it works with any standard container registry without a new image format.
  • Each container gets its own lightweight VM rather than sharing one VM across containers, per the README's core description.
  • The foundation is Apple's own Containerization Swift package, responsible for low-level handling of containers, images, and processes, and it is not a wrapper over an existing tool.
  • Ships as a signed installer package, with dedicated scripts for upgrading, downgrading, and uninstalling that can preserve or remove user data on request.

Current Project Status and Requirements

  • Only supported on macOS 26 — the README says older macOS versions aren't supported and that maintainers typically won't address issues that can't be reproduced on macOS 26.
  • Requires a Mac with Apple silicon; the facts here don't document Intel Mac support or any Linux or Windows host option.
  • The README's own Project Status section says `container` is under active development, with stability only guaranteed within patch versions, and warns that minor releases may include breaking changes until a 1.0.0 release ships.
  • Installation and upgrades go through a signed `.pkg` file or shell scripts (`update-container.sh`, `uninstall-container.sh`) rather than a package manager — the README doesn't mention a Homebrew formula.
  • The README doesn't state a current version number or a timeline toward 1.0.0.

Comparing with Other Container Runtimes

Docker Desktop — the default choice on Mac; runs all containers inside one shared Linux VM rather than giving each container its own VM, and carries commercial licensing terms for larger companies.Podman — a daemonless, rootless container engine with its own macOS VM layer (podman machine), a common pick for teams avoiding Docker Desktop's licensing.OrbStack — a macOS-focused Docker and Linux VM replacement built around lower resource use than Docker Desktop.Lima — a general-purpose Linux VM launcher for macOS that several other container tools build their macOS support on top of.

Common Questions

What macOS version does `container` require?

`container` requires macOS 26. The README says it depends on virtualization and networking features new in that release, and that maintainers typically won't address issues that can't be reproduced on macOS 26.

Is `container` optimized for Apple silicon?

`container` is written in Swift and optimized for Apple silicon, per its GitHub description, and running it requires a Mac with Apple silicon hardware.

Can `container` pull images from Docker Hub?

`container` works with any standard OCI-compatible container registry, per the README, which covers Docker Hub — you pull and run images the same way you would with any OCI-compliant client.

What license is the `container` tool released under?

`container` is released under the Apache-2.0 license, as listed on its GitHub repository.

Is `container` suitable for production use?

Not clearly, per the README's own project-status note: stability is only guaranteed within patch versions, and minor releases may include breaking changes until a 1.0.0 release ships.

How do I uninstall `container` from my Mac?

Run the `uninstall-container.sh` script installed at `/usr/local/bin`: use the `-d` flag to remove your user data along with `container`, or `-k` to keep your user data in case you reinstall later.

The problem it solves

Docker Desktop on Mac runs every container inside one shared Linux VM, so all your containers share that VM's kernel and resources. `container` gives each container its own lightweight VM instead, built directly on Apple's virtualization and networking stack via the Containerization Swift package, and it produces and consumes standard OCI images so it slots into existing registries and OCI-compatible tooling without a new image format to learn.

Best use cases

  • Running Linux containers locally on a Mac with a dedicated VM per container instead of one shared VM.
  • Pulling and running standard OCI images from existing registries via `container run`, without adopting a new image format.
  • Building and publishing your own container image, following the README's guided walkthrough in docs/tutorials/start-here.md.
  • Working inside Apple's own Swift and Containerization stack, for teams already building on the Containerization package who want the CLI Apple ships on top of it.

Who should try it — and who should skip

Try `container` if you're on a Mac with Apple silicon running macOS 26 and want per-container VM isolation built on Apple's own virtualization stack instead of Docker Desktop's shared-VM model, especially if you're already comfortable pulling and pushing OCI images. Skip it if you're on an older macOS release, an Intel Mac, or need to target Linux or Windows hosts, since none of those are supported — and hold off on production use until the project's own README stops flagging active development and pre-1.0.0 breaking changes.

Source & attribution

Facts and quotes sourced from the apple/container GitHub repository and its README.

GitHub data · last synced Aug 12, 2026Reviewed by Henry
Back to TopGit

Is container worth your time?

ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of container.

GitHub