--platform, --os, --arch. (#545)
- Fixes #231. - Extends #313 (@dcantah) so that all of `container create`, `container run`, `container build`, `container image pull`, and `container image save` accept the three options. - `container build` now processes comma-separated lists for `--platform`, `--arch`, and `--os`. It first checks `--platform`, assembling the union of all platform values. If that set is non-empty, the builder builds the values in the set. Otherwise, the set consists of all combinations of the specified architecture and os values, finally defaulting to `linux` and the host architecture if no options are provided. - All other commands work accept a single platform, preferring the `--platform` option over `--arch` and `--os` when both are specified. `--os` defaults to `linux`, and `--arch` defaults to the host architecture. - Clarify help messages and present the args in consistent order, with platform first since it takes precedence if present. - Deduplicate redundant platform options for `container build`.
container
container is a tool that you can use to create and run Linux containers as lightweight virtual machines on your Mac. It's written in Swift, and optimized for Apple silicon.
The tool consumes and produces OCI-compatible 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-compatible application.
container uses the Containerization Swift package for low level container, image, and process management.
Get started
Requirements
You need a Mac with Apple silicon to run container. To build it, see the BUILDING document.
container is supported on macOS 26, since it takes advantage of new features and enhancements to virtualization and networking in this release. We do not support older versions of macOS and the container maintainers typically will not address issues that cannot be reproduced on the latest macOS 26 beta.
Install or upgrade
If you're upgrading, first uninstall your existing container while preserving your user data:
uninstall-container.sh -k
Download the latest signed installer package for container from the GitHub release page.
To install the tool, double-click the package file and follow the instructions. Enter your administrator password when prompted, to give the installer permission to place the installed files under /usr/local.
Start the system service with:
container system start
Uninstall
Use the uninstall-container.sh script to remove container from your system. To remove your user data along with the tool, run:
uninstall-container.sh -d
To retain your user data so that it is available should you reinstall later, run:
uninstall-container.sh -k
Next steps
- Take a guided tour of
containerby building, running, and publishing a simple web server image. - Learn how to use various
containerfeatures. - Read a brief description and technical overview of
container. - Build and run
containeron your own development system. - View the project API documentation.
Contributing
Contributions to container are welcomed and encouraged. Please see our main contributing guide for more information.
Project Status
The container project is currently under active development. Its stability, both for consuming the project as a Swift package and the container tool, is only guaranteed within patch versions, such as between 0.1.1 and 0.1.2. Minor version number releases may include breaking changes until we achieve a 1.0.0 release.
