Files
apple--containerization/examples/ctr-example/lab.md
T
wehub-resource-sync 680845cb1c
Linux build / Determine Swift version (push) Waiting to run
Linux build / Linux compile check (push) Blocked by required conditions
Build containerization / Verify commit signatures (push) Has been skipped
Build containerization / containerization (push) Successful in 0s
chore: import upstream snapshot with attribution
2026-07-13 12:25:30 +08:00

59 lines
1.3 KiB
Markdown

#
## 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:
```bash
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