# How to Install Apple Container Binaries on macOS

> Learn how to install apple container binaries on macOS easily. Download the pkg installer from GitHub, run it, and start the service in minutes for seamless container management.

- Repository: [Apple/container](https://github.com/apple/container)
- Tags: how-to-guide
- Published: 2026-06-27

---

**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.

```bash
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`](https://github.com/apple/container/blob/main/update-container.sh) and [`uninstall-container.sh`](https://github.com/apple/container/blob/main/uninstall-container.sh).

```bash
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.

```bash
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`](https://github.com/apple/container/blob/main//usr/local/bin/update-container.sh).

```bash

# 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`](https://github.com/apple/container/blob/main/uninstall-container.sh) script. This utility supports two modes: preserving user data (configuration and images) or complete removal.

```bash

# 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`](https://github.com/apple/container/blob/main/Package.swift)** — Defines the Swift package structure and declares the `containerization` dependency for low-level VM and image handling.
- **[`README.md`](https://github.com/apple/container/blob/main/README.md)** — Contains the primary user-facing documentation covering installation, upgrade, and uninstall procedures.
- **[`scripts/install-init.sh`](https://github.com/apple/container/blob/main/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`](https://github.com/apple/container/blob/main/scripts/update-container.sh)** — Installed to `/usr/local/bin` for version management.
- **[`scripts/uninstall-container.sh`](https://github.com/apple/container/blob/main/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`](https://github.com/apple/container/blob/main//usr/local/bin/update-container.sh) with optional version flags.
- **Uninstalls** use [`/usr/local/bin/uninstall-container.sh`](https://github.com/apple/container/blob/main//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`](https://github.com/apple/container/blob/main/update-container.sh) and [`uninstall-container.sh`](https://github.com/apple/container/blob/main/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`](https://github.com/apple/container/blob/main/Package.swift) to install?

No. End users should use the signed `.pkg` installer available on the GitHub releases page. Building from [`Package.swift`](https://github.com/apple/container/blob/main/Package.swift) is only necessary for developers modifying the source code or the `containerization` dependency.