Back to Containerization

Lab

examples/ctr-example/lab.md

0.32.01.3 KB
Original Source

Install and test the container tool:

See https://github.com/apple/container/releases

Once installed, start the service and follow prompts.

bash
container system start

This'll install your kernel.

After this start your first container. On first launch, this'll install another artifact for our guest init process:

container run alpine uname

Container starts after this will be fast!

Get the Containerization sources:

bash
$ git clone https://github.com/apple/containerization.git

[!IMPORTANT] There is a bug in the vmnet framework on macOS 26 that causes network creation to fail if the creating applications are located under your Documents or Desktop directories. To workaround this, clone the project elsewhere, such as ~/projects/containerization, until this issue is resolved.

Take a look at ctr-example

Read through the sources:

  • ContainerManager:
  • manager.create()
  • container.create(), start(), wait(), stop()

Fetch the kernel

Run

bash
cp "$(ls -t ~/Library/Application\ Support/com.apple.container/kernels/vmlinux-* | head -1)" ./vmlinux

Build and run the example

bash
$ cd examples/ctr-example
$ make

Modify the project

  • Change the command run by the container
  • Change the image