Build a Container Image for Another Platform Using QEMU Emulation
Learn how to build container images for non-native CPU architectures (e.g., arm64 on an amd64 host) using QEMU user-space emulation and Docker.
Focused hands-on problems designed to help you hone your DevOps or Server Side skills. Some challenges are more educational, while others are based on real-world scenarios. The platform provides hints and feedback for each challenge, including automated solution checks.
Learn how to build container images for non-native CPU architectures (e.g., arm64 on an amd64 host) using QEMU user-space emulation and Docker.
Save a container image as an OCI layout, extract its filesystem layers, and mount them together using OverlayFS to get a flat container-like rootfs.
Save container images as OCI layouts and explore the on-disk structure of single-platform (manifest-based) and multi-platform (index-based) images.
Practice optimizing applications' container images using multi-stage builds. Rewrite single-stage Dockerfiles for a Go backend and a TypeScript frontend to produce smaller, production-ready images without unnecessary build tools and dev dependencies.
Build a container image from a Dockerfile and use Docker commands to inspect its size and layer composition.
Practice building and compiling applications inside their Dockerfiles by containerizing a Go backend and a TypeScript frontend.
Learn how to keep your container images lean by excluding development dependencies (linters, test frameworks, etc.) from the production build.
Practice installing OS-level packages during a Docker image build to satisfy system library requirements of your application.
Learn the absolute basics of Dockerfile authoring by containerizing a simplistic Node.js server application with just three instructions: FROM, COPY, and CMD.
Learn how to write a Dockerfile from scratch and build a working container image for a web server application with a simple set of dependencies.