A hands-on workshop covering OCI image internals, container hardening, and Linux namespaces.
| Section | What you learn |
|---|---|
understanding-oci-images/ |
Layers, whiteouts, secrets, multi-stage builds |
container-hardening/ |
RCE exploitation, root vs. non-root, distroless, read-only filesystems |
sbom-generation/ |
SBOM trust boundaries — ghost packages and phantom binaries |
linux-namespaces/ |
How containers isolate processes at the kernel level |
All tools are provided through a Nix dev shell (flake.nix). Two paths depending on your OS:
- Linux — run
nix developdirectly in the repo root. - macOS — the Linux namespace exercises require a real Linux kernel. Use Lima to spin up a lightweight Debian VM and run everything inside it.
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install)Restart your shell, then verify:
nix --versionnix-env -iA nixpkgs.lima
# or, if you prefer Homebrew:
brew install limaThe repo ships a workshop.yaml Lima template — a minimal Debian 12 VM with your home directory mounted read-write.
limactl start workshop.yamlFirst start downloads the Debian image and boots the VM (~1 min). Subsequent starts are instant.
Open a shell in the VM and run each step:
limactl shell workshopInstall Nix:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemonEnable flakes:
sudo mkdir -p /etc/nix
echo 'experimental-features = nix-command flakes' | sudo tee -a /etc/nix/nix.confReload your shell to pick up the Nix profile:
exec $SHELL -lVerify:
nix --version# Still inside the VM shell:
cd ~/path/to/container-developer-workshop
nix developnix develop installs and activates all tools: docker, jq, bun, nc, gnutar, container-hardening-work-bench, plus the Linux-only namespace tools (unshare, nsenter, newuidmap, go).
limactl stop workshop # pause the VM
limactl start workshop # resume
limactl delete workshop # remove entirelynix developThat's it. All tools including the namespace utilities are available immediately.
See PREREQUISITES.md for manual installation instructions for each tool.