Interact with the Apple Container CLI to manage containers, images, volumes, networks, and system services on macOS...
To use the Apple Container CLI, execute the commands below using the run_shell_command tool.
Note: This CLI is specific to Apple's container implementation.
These patterns represent best practices for using the Apple Container CLI effectively.
Unlike standard Docker Desktop, the container system services are explicit.
container system status before running operations. If stopped, run container system start.system start may prompt to install a Linux kernel. The agent should be aware of this initialization step.container system stop.sudo container system dns create <domain> (e.g., test)container system property set dns.domain <domain>http://<container-name>.<domain>.vmnet. Direct IP communication (192.168.64.x) works but can be fragile due to isolation.-p 5432:5432).192.168.64.1).sslmode=disable) if connection resets occur via the gateway.-p 8080:80) works as expected for accessing containers from the host.lost+found directory, which can cause "directory not empty" errors.PGDATA=/var/lib/postgresql/data/pgdata instead of the root mount point.--ssh flag (container run --ssh ...) to forward the host's SSH agent. This is the preferred method for cloning private repositories inside containers.--volume (e.g., -v $(pwd):/app) to mount source code for immediate feedback, just like standard Docker.container builder start --cpus 4 --memory 8g.Before running containers, the system services usually need to be running.
container system statuscontainer system start (may require sudo if installing kernel/root components, but usually run as user)container system start: Starts the container services.--enable-kernel-install, --disable-kernel-install, --app-root <path>, --install-root <path>.container system stop: Stops the container services.--prefix <string>.container system status: Checks if services are running.container system version: Shows CLI and API server versions.container system logs: Displays system logs.--follow, --last <time> (e.g., 5m, 1h).container system df: Shows disk usage.container system dns create <domain>: Creates a local DNS domain (requires sudo).container system dns list: Lists configured local DNS domains.container system dns delete <domain>: Deletes a local DNS domain (requires sudo).container system property list: Lists system properties (config).container system property get <id>: Gets a system property value.container system property set <id> <value>: Sets a system property.container system property set dns.domain my.localcontainer system property clear <id>: Resets a system property to default.container system kernel set: Installs/updates the Linux kernel.--recommended, --arch <arch>, --binary <path>.container run [OPTIONS] IMAGE [COMMAND] [ARG...]: Runs a command in a new container.-d, --detach: Run in background.-i, --interactive: Keep STDIN open.-t, --tty: Allocate a pseudo-TTY.-p, --publish <host-port:container-port>: Publish a port.-v, --volume <host-path:container-path>: Mount a volume.--name <string>: Assign a name.--rm: Remove after stop.-e, --env <key=value>: Set environment variable.-u, --user <user>: Set user (name|uid[:gid]).-w, --workdir <dir>: Set working directory.-c, --cpus <count>: CPU limit.-m, --memory <size>: Memory limit (e.g., 512M, 2G).container create [OPTIONS] IMAGE [ARG...]: Creates a container without starting it (same options as run).container start [OPTIONS] CONTAINER...: Starts stopped containers.-a, --attach, -i, --interactive.container stop [OPTIONS] CONTAINER...: Stops running containers.-t, --time <seconds> (wait before kill), -s, --signal <signal>.container kill [OPTIONS] CONTAINER...: Kills containers immediately.-s, --signal <signal>.container delete [OPTIONS] CONTAINER...: Deletes containers (aliases: rm).-f, --force (delete even if running).container exec [OPTIONS] CONTAINER COMMAND [ARG...]: Executes a command in a running container.-it, -d, -w, -e, -u, --user.container list [OPTIONS]: Lists containers (aliases: ls, ps).-a, --all (show stopped too), -q (quiet, IDs only).container inspect CONTAINER...: JSON details of containers.container logs [OPTIONS] CONTAINER: Fetches container logs.-f, --follow, --tail <n>, --boot (show boot logs).container stats: Live stream of resource usage.--no-stream.container build [OPTIONS] PATH: Builds an image from a Dockerfile.-t <tag>, -f <dockerfile>, --build-arg <key=val>, --no-cache, -o, --output <type>.container image pull [OPTIONS] NAME[:TAG]: Pulls an image from a registry.--platform <os/arch>, --arch <arch>, --os <os>.container image push NAME[:TAG]: Pushes an image.container image list: Lists local images (aliases: ls, images).container image delete IMAGE...: Deletes images (aliases: rm, rmi).container image prune: Removes unused images.container image tag SOURCE TARGET: Tags an image.container image inspect IMAGE...: JSON details of images.container image save -o <path> IMAGE: Saves image to tar.--platform <os/arch>.container image load -i <path>: Loads image from tar.container volume create [OPTIONS] NAME: Creates a volume.-s, --size <size>, --label <key=val>.container volume list: Lists volumes (aliases: ls).container volume inspect NAME...: JSON details.container volume delete NAME...: Deletes volumes (aliases: rm).container volume prune: Removes unused volumes.container network create NAME: Creates a network.--subnet <cidr>, --subnet-v6 <cidr>, --label <key=val>.container network list: Lists networks (aliases: ls).container network inspect NAME...: JSON details.container network delete NAME...: Deletes networks (aliases: rm).container network prune: Removes unused networks.container registry login SERVER: Log in to a registry.-u <username>, --password-stdin, --scheme <auto|https|http>.container registry logout SERVER: Log out.container builder status: Check BuildKit builder status.container builder start: Start the builder manually.--cpus <count>, --memory <size>.container builder stop: Stops the builder.container builder delete: Deletes the builder.container builder prune: Clear builder cache.