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 the containerization dependency 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/bin for version management.
  • scripts/uninstall-container.sh — Installed to /usr/local/bin for clean removal.

The installer places all binaries under /usr/local, eliminating the need for manual PATH adjustments.

Summary

  • Installation requires downloading a signed .pkg from GitHub releases, running the installer, and executing container system start.
  • Binaries are installed to /usr/local/bin with helper scripts for updates and removal.
  • Upgrades use /usr/local/bin/update-container.sh with optional version flags.
  • Uninstalls use /usr/local/bin/uninstall-container.sh with -k to preserve data or -d for 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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →