
Apple Container
FreeManage OCI containers on Apple silicon without Docker.
Free · Opens the source repo
What Apple Container does
Apple Container is a command-line interface designed for building, running, and managing OCI/Linux containers specifically on Apple silicon Macs. Unlike traditional container solutions that rely on a shared Docker daemon, Apple Container utilizes Apple's open-source container CLI to create lightweight virtual machines for each container, ensuring a more efficient and isolated environment. This approach allows developers and designers to leverage the power of containerization without the overhead associated with Docker's architecture.
The CLI is designed to be familiar to users of Docker, featuring similar commands such as container run, container build, and operations under container image. However, it is crucial to note that while the syntax may resemble Docker's, the underlying behavior and command structure differ significantly. Users must refer to the provided documentation to understand the specific flags and commands available, as assumptions based on Docker may lead to errors.
The skill is particularly beneficial for developers and designers who work on macOS 26 (Tahoe) or later and require a streamlined method for managing containerized applications. With support for standard OCI artifacts, users can easily pull images from Docker registries, facilitating interoperability with existing workflows. Additionally, the ability to create per-container networks and persistent volumes enhances the flexibility of application deployment on Apple silicon.
For those looking to transition from Docker to a more native solution on macOS, Apple Container provides a robust alternative that aligns with Apple's ecosystem while maintaining compatibility with existing OCI standards. This skill is ideal for anyone needing to manage containerized applications in a lightweight and efficient manner on Apple silicon devices.
When to use it
Use this skill when you need to build, run, or manage OCI containers on macOS 26 or later, especially if you prefer a lightweight VM approach over Docker's architecture.
When not to use it
Avoid this skill if you are using Intel Macs or older versions of macOS, as it is specifically designed for Apple silicon and has limited functionality on unsupported versions.
What you can build with it
Building Applications
Developers can use Apple Container to build OCI images from Dockerfiles directly on their Apple silicon Macs, streamlining the development process.
Running Isolated Services
With Apple Container, users can run multiple isolated services, each within its own lightweight VM, enhancing security and resource management.
Translating Docker Workflows
For teams transitioning from Docker, Apple Container allows for the translation of existing Docker workflows into Apple's container tooling, facilitating a smoother migration.
How to install Apple Container
View source1. Install with the skills CLI
npx skills add sickn33/agentic-awesome-skills/apple-container --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by sickn33Apple container
When to Use
- Use when building, running, or managing OCI/Linux containers on Apple-silicon macOS with Apple's open-source
containerCLI - Use when you want lightweight per-container VMs instead of a Docker daemon
- Use when translating Docker-style workflows (build, run, exec, logs, networking) to Apple's container tooling
Apple's container is an open-source CLI for building, running, and managing OCI/Linux
containers on Apple-silicon Macs. Each container runs inside its own lightweight virtual
machine (backed by the Containerization framework and the Virtualization API), so there is no
shared daemon like Docker — services run per-user via launchd. Images are standard OCI
artifacts, so they interoperate with Docker registries and other OCI tooling. The CLI is
deliberately Docker-like (container run, container build, and image ops under
container image push/pull), but it is a distinct tool: do not assume Docker command paths,
flags, defaults, or daemon behavior carry over (e.g. there is no container images/push/pull
top-level command — image verbs live under container image).
Safety Gate
Container installation, service startup, image pulls, builds, runs, registry login, pushes, and resource cleanup change local or remote state. Explain the exact command, image registry, mounts, ports, privileges, and data-persistence impact, then obtain explicit user approval before executing it. Do not provide registry credentials, mount sensitive paths, or expose ports without the user's explicit instruction.
Requirements
- Apple silicon only (M1 or later). Intel Macs are not supported.
- macOS 26 (Tahoe) is the officially supported target. The maintainers do not support
older macOS and typically will not fix issues that can't be reproduced on 26. The binary
still runs on macOS 15 (Sequoia) but with reduced networking: only the single default
subnet is available, and the
container networkgroup and--networkflag error out. macOS-26-gated features are called out throughout the reference files. - Version: this skill documents the 1.0.0 release (the fullest feature set). The
machinegroup,container cp,container export,container prune,container image prune,container registry list, andcontainer system versionwere added in 1.0.0 (not in 0.7.1) — features that postdate 0.7.1 are flagged (1.0.0+) in the reference files. Runcontainer --versionandcontainer <group> --helpto see what your installed build supports. - Install by downloading the signed
.pkginstaller from the project's GitHub releases (apple/container) and running it. Seereferences/concepts.mdfor the full requirements/compatibility matrix and how the VM-per-container model works.
Setup
Install the signed package, then start the background services once:
- Download the latest signed installer
.pkgfrom the GitHub releases page. - Double-click the downloaded package and follow the prompts, entering your admin
password so it can place files under
/usr/local. (There is no documented CLIinstallerinvocation — installation is via the GUI package.) - Start the services and confirm they are healthy:
# Start the container services (container-apiserver + helpers via launchd). On first run it
# offers to install the default Linux kernel — accept it, or start non-interactively with
# `--disable-kernel-install` and add a kernel later via `container system kernel set`.
container system start
# Verify services are healthy
container system status
container system start must have run before any container/image/build command works — a
connection/XPC error almost always means the services are stopped, so run it again. Stop and
deregister the launchd services with container system stop (which takes only -p/--prefix).
The startup flags for container system start (-a/--app-root, --install-root, --log-root,
--enable-kernel-install/--disable-kernel-install, --timeout) are in
references/configuration.md.
Upgrade / downgrade / uninstall use helper scripts in /usr/local/bin (stop first with
container system stop): update-container.sh (add -v <version> to pin a version), and
uninstall-container.sh -d to remove user data or -k to keep it. Full recipes in
references/workflows.md.
Command groups at a glance
Invoke everything as container <group> <subcommand>. Container-lifecycle verbs (run,
create, start, stop, exec, logs, inspect, list/ls, delete/rm, kill,
stats) and build are top-level; image operations like push, pull, and tag live
under container image. Run container <group> --help for exact flags, or read
references/commands.md for the exhaustive matrix.
| Group | What it does | Example |
|---|---|---|
| container lifecycle | Create, start, run, stop, exec, inspect, list, remove containers | container run --rm -it docker.io/library/alpine sh |
| build | Build an OCI image from a Dockerfile in the builder VM | container build -t myapp:latest . |
| image | List, tag, inspect, remove, load/save, prune local images; push/pull to registries | container image ls |
| registry | Authenticate (login/logout/list) to OCI registries | container registry login ghcr.io |
| system | Start/stop/status services, logs, disk usage (df), DNS, kernel, properties | container system status |
| network | Create/list/remove container networks (macOS 26 only) | container network create mynet |
| volume | Create/list/inspect/remove persistent volumes | container volume create data |
| builder | Manage the builder VM that runs container build (start/stop/status) | container builder status |
| machine (1.0.0+) | Persistent Linux "machine" environments (added in 1.0.0) | container machine --help |
Exact subcommand names, aliases, arguments, and flags for each group live in
references/commands.md — consult it before running an unfamiliar command rather than
guessing Docker-equivalent syntax.
Navigating this skill
Read the reference file that matches the task; do not guess flags or behavior.
references/commands.md— exhaustive CLI reference: every command group, subcommand, alias, argument, and flag. Read this to construct any concretecontainer ...invocation, or to confirm a flag exists before using it.references/concepts.md— architecture (VM-per-container, Containerization framework), system requirements and macOS 15 vs 26 differences, networking model, per-container IPs, security model, and a Docker-vs-containercomparison. Read this to explain how or why something works, or when a Docker mental model gives the wrong answer.references/configuration.md— the system service,config.toml/ property model, default kernel, DNS domains, default registry, builder resources, and machine settings. Read this to change defaults, tune CPU/memory, point at a private registry, or manage the kernel.references/workflows.md— copy-pasteable task recipes (run an image, build & push, wire up local DNS, mount a volume, expose ports) and troubleshooting for common failures. Read this first when the user wants to accomplish a concrete end-to-end task.
Key rules
- This is not Docker. The CLI resembles Docker, but flags, defaults, and daemon behavior
differ. Verify syntax in
references/commands.mdinstead of assuming Docker equivalence. - Always ensure services are up first. Run
container system start(and confirm withcontainer system status) before any container/image/build command; connection errors usually mean the services are stopped. - Images are standard OCI artifacts and interoperate with Docker registries and other OCI
tools. Image references that omit a registry default to
docker.io(configurable via theregistry.domainproperty — seereferences/configuration.md). - Each container gets its own IP address on its network (one lightweight VM per
container). There is no shared Docker bridge; reach a container directly by its IP, or set
up a local DNS domain (
container system dns create ..., admin required) for name-based access. container networkrequires macOS 26. On macOS 15 only the single default subnet is available and the network command group is unavailable — seereferences/concepts.md.- Use fully-qualified image references when precision matters (e.g.
docker.io/library/alpinerather than barealpine) to avoid ambiguity about the source registry.
Limitations
- Apple Container requires Apple silicon and has materially different support and networking behavior across macOS releases; verify the installed CLI version before relying on a flag.
- OCI images and registry content are third-party inputs. Inspect and trust the image source before pulling or running it.
- This skill does not make container workloads safe by default: mounts, published ports, privileged settings, registry credentials, and cleanup can expose or destroy data.
- Stop before uninstalling, pruning, deleting containers, volumes, or images, and require explicit approval for each destructive action.
Frequently asked questions about Apple Container
Similar skills
Turborepo
Optimized build system for JavaScript/TypeScript monorepos.
Azure Pipelines Validation
Streamline your Azure DevOps pipeline changes locally.
Azure Developer CLI
Streamline your Azure project workflows with best practices.
Azure Container Registry CLI
Manage Azure Container Registry resources with ease.
Aspire
Build and orchestrate polyglot distributed applications seamlessly.
Vercel CLI
Manage and deploy Vercel projects from the command line.
