How to Install Apple Container Binaries on macOS
Download the signed .pkg installer from GitHub releases, run it to place binaries in /usr/local/bin, and start the service with container system start.
The apple/container repository provides a Swift-based command-line utility that runs OCI-compatible containers as lightweight virtual machines on Apple Silicon Macs. Installing the apple container binaries involves a standard macOS package installation that requires no manual PATH configuration or dependency management.
Installation Steps
Download the Signed Installer
The latest release is published on the GitHub releases page. You can download it manually or use curl to fetch the package directly to your local machine.
curl -L https://github.com/apple/container/releases/download/v0.3.0/container-0.3.0.pkg -o /tmp/container.pkg
Run the Installer Package
Double-click the downloaded .pkg file or use the open command to launch the GUI installer. The installation process writes the container binary and supporting scripts to /usr/local/bin, including update-container.sh and uninstall-container.sh.
open /tmp/container.pkg
According to the apple/container source code, the installer registers launch-daemon entries so the container system starts automatically on boot.
Start the Container System Service
After the package finishes installing, initialize the background service to enable VM management.
container system start
Upgrading or Downgrading Apple Container Binaries
To update to a newer version or revert to a specific release, first stop the running service, then invoke the bundled update script installed at /usr/local/bin/update-container.sh.
# Stop the current service
container system stop
# Update to the latest version
/usr/local/bin/update-container.sh
# Or specify a version (e.g., 0.3.0)
/usr/local/bin/update-container.sh -v 0.3.0
Alternatively, you can repeat the download-and-install process using a newer .pkg file from the releases page.
Uninstalling Apple Container Binaries
Remove the installation using the bundled uninstall-container.sh script. This utility supports two modes: preserving user data (configuration and images) or complete removal.
# Keep user data (configs, images, etc.)
/usr/local/bin/uninstall-container.sh -k
# Remove everything including user data
/usr/local/bin/uninstall-container.sh -d
Installation Architecture and Key Files
The installation relies on several components defined in the repository:
Package.swift— Defines the Swift package structure and declares thecontainerizationdependency for low-level VM and image handling.README.md— Contains the primary user-facing documentation covering installation, upgrade, and uninstall procedures.scripts/install-init.sh— Developer utility that loads an init image directly into a running system (not required for standard end-user installation).scripts/update-container.sh— Installed to/usr/local/binfor version management.scripts/uninstall-container.sh— Installed to/usr/local/binfor clean removal.
The installer places all binaries under /usr/local, eliminating the need for manual PATH adjustments.
Summary
- Installation requires downloading a signed
.pkgfrom GitHub releases, running the installer, and executingcontainer system start. - Binaries are installed to
/usr/local/binwith helper scripts for updates and removal. - Upgrades use
/usr/local/bin/update-container.shwith optional version flags. - Uninstalls use
/usr/local/bin/uninstall-container.shwith-kto preserve data or-dfor complete removal. - Architecture relies on the Containerization Swift package and launch-daemons for automatic startup.
Frequently Asked Questions
Where are the apple container binaries installed?
The installer writes all binaries to /usr/local/bin, including the main container executable and helper scripts like update-container.sh and uninstall-container.sh. This location is typically already in your system PATH, requiring no additional configuration.
How do I upgrade apple container to a specific version?
Stop the running service with container system stop, then run /usr/local/bin/update-container.sh -v <VERSION> (for example, -v 0.3.0). You can also download the specific .pkg release from GitHub and run the installer directly.
What is the difference between the -k and -d flags when uninstalling?
The -k flag keeps user data such as configuration files and container images, removing only the binaries and system components. The -d flag performs a complete deletion, removing all user data alongside the installation.
Do I need to manually compile from Package.swift to install?
No. End users should use the signed .pkg installer available on the GitHub releases page. Building from Package.swift is only necessary for developers modifying the source code or the containerization dependency.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →