# How to Install Apple's Container Tool on macOS: Complete Setup Guide

> Install Apple's container tool on macOS easily. Follow our guide to download, install the binary, and start the background service with simple commands.

- Repository: [Apple/container](https://github.com/apple/container)
- Tags: getting-started
- Published: 2026-07-03

---

**Download the signed `.pkg` installer from the GitHub releases page, run it to install the binary to `/usr/local/bin/container`, then execute `container system start` to initialize the background service.**

Apple’s `container` CLI lets you run Linux containers as lightweight virtual machines on Apple Silicon Macs. This open-source project, hosted in the `apple/container` repository, distributes as a signed macOS installer package. To install Apple's container tool on macOS, your system must run macOS 26 or later and you need administrator privileges.

## Prerequisites and System Requirements

Before you begin, verify your Mac meets the hardware and software requirements. According to the repository’s README, the tool requires **macOS 26 (or later)** because it relies on new virtualization and networking features. Apple Silicon hardware is mandatory, as the tool is optimized for ARM-based Macs.

## Step-by-Step Installation

### Download the Signed Installer

The official distribution method is a signed `.pkg` file published on the GitHub releases page. Navigate to the releases section of the `apple/container` repository and download the latest installer package to your local machine.

### Run the Installer Package

Double-click the downloaded `.pkg` file and follow the on-screen prompts. You must supply an administrator password to complete the installation. The installer copies the `container` binary to `/usr/local/bin/container` and installs two helper scripts in the same directory: [`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).

### Start the Background Service

After installation, launch the background service that powers the VM layer. Open Terminal and run:

```bash
container system start

```

This command creates the default network and initializes the daemon, making the CLI ready for use.

### Verify the Installation

Confirm the tool is working correctly by checking the version and service status:

```bash
container version
container system status

```

If the daemon is running, you can run a test container:

```bash
container run --rm alpine:latest uname -a

```

## Upgrading and Downgrading Versions

The repository includes [`scripts/update-container.sh`](https://github.com/apple/container/blob/main/scripts/update-container.sh) to automate version management without manually downloading packages. To upgrade to the latest release:

```bash
/usr/local/bin/update-container.sh

```

To downgrade to a specific version (for example, 0.3.0):

```bash
/usr/local/bin/update-container.sh -v 0.3.0

```

Alternatively, you can download any historical version from the GitHub releases page and rerun the installer package.

## Uninstalling the Tool

To remove the tool, use the [`uninstall-container.sh`](https://github.com/apple/container/blob/main/uninstall-container.sh) script installed at `/usr/local/bin/`. The script supports two flags for controlling data retention:

- **`-k`**: Preserves user data, such as virtual machine images
- **`-d`**: Removes everything, including all user data

Run the appropriate command based on your needs:

```bash

# Uninstall but keep user data

/usr/local/bin/uninstall-container.sh -k

# Completely remove the tool and all data

/usr/local/bin/uninstall-container.sh -d

```

## Summary

- **System Requirements**: macOS 26 or later on Apple Silicon hardware.
- **Installation**: Download the signed `.pkg` from GitHub releases, which installs the binary to `/usr/local/bin/container` and helper scripts to the same directory.
- **Service Initialization**: Run `container system start` after installation to create the default network and start the daemon.
- **Version Management**: Use [`/usr/local/bin/update-container.sh`](https://github.com/apple/container/blob/main//usr/local/bin/update-container.sh) to upgrade or downgrade versions automatically.
- **Removal**: Use [`/usr/local/bin/uninstall-container.sh`](https://github.com/apple/container/blob/main//usr/local/bin/uninstall-container.sh) with `-k` or `-d` flags to uninstall while controlling data retention.

## Frequently Asked Questions

### What macOS version is required to install Apple's container tool?

The tool requires macOS 26 or later because it relies on new virtualization and networking features introduced in that version. Older macOS releases are not supported according to the repository documentation.

### Where is the container binary installed on macOS?

The installer copies the `container` binary to `/usr/local/bin/container`. It also installs the helper scripts [`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) to the same directory, while the source versions reside in [`scripts/update-container.sh`](https://github.com/apple/container/blob/main/scripts/update-container.sh) and [`scripts/uninstall-container.sh`](https://github.com/apple/container/blob/main/scripts/uninstall-container.sh) in the repository.

### How do I start the container service after installation?

Run `container system start` in your terminal. This command creates the default network and launches the background daemon that powers the VM layer, enabling you to run Linux containers.

### Can I upgrade or downgrade without downloading the .pkg manually?

Yes. Use the [`/usr/local/bin/update-container.sh`](https://github.com/apple/container/blob/main//usr/local/bin/update-container.sh) script included with the installation. Run it without arguments to upgrade to the latest version, or use the `-v` flag to specify a specific version (e.g., `0.3.0`) for downgrading.