Files
Danny Canter d8fcd1e9ca Network: Move to standalone type (#584)
The network protocol and VMNetNetwork implementation currently are
housed on ContainerManager even though they are generally useful types
even outside of this easy to use helper type. This change moves them to
not be nested types anymore, as well as exposes a new param on
VMNetNetworks constructor so we can pass the type of network.
2026-03-19 11:33:46 -07:00
..
2025-11-12 14:30:01 -08:00
2025-11-12 14:30:01 -08:00

Container Example

Very basic example of launching a Linux container using Containerization.

Build and Run

1. Fetch Kernel

In your terminal, change directories to examples/ctr-example and run:

Option A: Using Makefile (recommended)

make fetch-default-kernel

Option B: Copy from installed container tool

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

You should now see the vmlinux image in examples/ctr-example

2. Build/Run ctr-example

From examples/ctr-example run make all

Warning

If you get the following error, try building from the default macOS terminal: error: compiled module was created by a newer version of the compiler

After the build completes, the example will run. In your terminal you should see something like:

Starting container example...
Fetching container initial filesystem...
Creating container from docker.io/library/alpine:3.16...
Starting container...
/ #

Warning

If you get the following error, try moving the ctr-example binary to /var/tmp and run it from there. Swift/ErrorType.swift:254: Fatal error: Error raised at top level: unsupported: "failed to create vmnet network with status vmnet_return_t(rawValue: 1001)"

Congratulations, you've started the example container!