This repository installs Apple's container CLI through the Homebrew formula
in Brewfile.formulae. Homebrew manages runtime upgrades and the placement of
the CLI and service plugins. The system services are started manually when
needed.
The initial proof of concept uses container machine as a persistent Linux
development environment. Docker Desktop remains installed for Compose,
Dev Containers, Testcontainers, and tools that require the Docker Engine API.
Preview and apply the chezmoi changes:
chezmoi diff
chezmoi applyAfter the first install, start the system and allow it to install the default Linux kernel:
container system start --enable-kernel-installApple container does not currently start automatically after a Mac restart. Start it manually when needed:
container system startVerify the installation:
container system status
container system versionStop the system when it is no longer needed:
container system stopUpdate it through the normal Homebrew workflow:
brew update
brew upgrade containerStart with an Ubuntu machine that has limited host access:
container machine create \
--name dev-poc \
--set-default \
--cpus 4 \
--memory 8G \
--home-mount ro \
ubuntu:24.04Open a login shell:
container machine runRun a command as root when installing system packages:
container machine run --rootUse the read-only home mount first. Change it to read-write only if the workflow requires direct access to host repositories:
container machine stop
container machine set home-mount=rw
container machine runFor stronger separation, keep source code in the machine filesystem and clone the repository from inside the machine using an authentication method chosen for the PoC.
Use one real project for the PoC and check:
- Dependency installation and build time.
- Test execution time.
- File watching and hot reload.
- LSP and editor integration.
- Recovery after stopping and restarting the machine.
- Whether Docker Desktop is still needed during normal development.
container machine stop dev-poc
container machine delete dev-pocAfter deleting any machines that are no longer needed, uninstall the runtime through Homebrew:
brew uninstall containerHomebrew does not remove Apple container's application data. Avoid deleting
that data manually during the PoC; remove machines with
container machine delete instead.