This three-hour workshop will cover building images from primitive pre-container forms and simple techniques (chroots and simple images built from tarballs) to more advanced techniques like layered images built with tools like Docker and podman. Attendees do not need existing knowledge of building container images but will need a basic understanding of how Linux network services run, and a degree of comfort with the Linux command line. Attendees will need to bring their own Linux environment with a build tool like Docker or podman installed. (Terraform code for creating a suitable VM in various cloud environments will be provided in a GitHub repo prior to the workshop.)
The workshop exercises will cover:
- Running simple applications in chroots
- Building simple single-binary images with chroot and ldd
- Building complex images with chroot and package managers
- Building complex images with tools like podman
Additionally, discussion before and between exercises will cover:
- Basic container history
- What makes up a modern OCI image
- How to build images that are maintainable, store efficiently and can be security-scanned effectively
- Base image strategies from a pure-upstream approach to a single custom base to maintaining multiple base images



