Apple is having a busy WWDC, but beyond the gossip over its new glassy OS UI came a new tool which anyone using a Mac to work with Linux containers will be interested in hearing about.

This week Apple released an initial build of its new open-source container tool for creating and running Linux containers on Mac.

The CLI tool, named container, is written in Swift, Apple’s go-to programming language, and optimised for Apple silicon and its next major OS update, macOS 26 Tahoe.

Image: Apple

Apple’s technical documentation explains:

“[This…] consumes and produces OCI-compliant container images, so you can pull and run images from any standard container registry. You can push images that you build to those registries as well, and run the images in any other OCI-compliant application.”

As Apple’s container tools works with industry-standard containers, those which follow the Open Container Initiative (OCI) specifications, everything ought to play nicely across containerisation ecosystems, including the dominant Docker.

Ubuntu provides OCI-compliant container images, which gives me the ‘relevancy’ hook I need to justify reporting on this ;)

But unlike common ways to run Docker on macOS, Apple’s container tool gives each container an isolated, lightweight Linux VM to enforce strict security and privacy, marking out a different approach to shared-kernel container tools.

These VMs use a new streamlined, Swift-based init system called vminitd. Unlike a standard Linux init system, vminitd includes no core utilities, dynamic libraries, or libc, but does do the usual stuff: environment setup, IP assigning, filesystem mounting, etc.

Powering container is Apple’s new Containerization framework. This provides low level container, image, and process management on Mac and allows apps to include sidecars (secondary containers that run alongside, usuallyy handling things like logging or monitoring).

You’ll find a lot more detail in the container documentation and by following links therein to the components it makes use of.

How to Try Container

If you want to try Container out, you can. An initial build is available to download. There is a catch: it’s designed for macOS 26 Tahoe, which is currently in developer beta. It does run on macOS 15 Sequoia, but with limitations, like no container-to-container communication.

Presently, the native macOS Virtualization framework has long-standing memory limitations, such as partial support for memory ballooning (an important feature for memory-intensive apps). But now Apple is making its containerisation tools available, it’ll likely address those shortcomings in short-order.

Download links and setup instructions can be found on Apple’s Container GitHub repo.

Why is this is interesting?

It’s already possible to run Linux containers on Mac using tools like Docker Desktop, Lima, or even “full-fat” virtualisation apps like Parallels and VMware Fusion Pro. In that sense, Apple’s container doesn’t unlock functionality hitherto unavailable on Mac.

Apple’s Container doesn’t unlock functionality hitherto unavailable on Mac, but the first-party gloss will appeal

First-party tools and frameworks made by Apple will have a broader appeal to some.

Deep integration with macOS technologies like vmnet, XPC, and even Apple Keychain could deliver a better experience than third-party alternatives.

But I wonder if perhaps this is a bit late. Most developers working with containers on Macs will have settled on an alternative solution, and have a workflow and setup they like. Persuading them to switch might require a few more bells and whistles.

Apple Knows Linux Bears Fruit

Apple’s open source developer tools are plentiful, yet the company isn’t synonymous with being super-friendly to Linux. To see it provide homegrown tools for running Linux containers on Mac, and build them in the open, is great.

It’s a sign Apple recognises how important Linux containers to in modern software developers, and how Apple—like Microsoft with WSL—needs to provide tools to meet devs where they are — if only to try and keep them where they are!