A Docker Labspace that teaches how to build production-grade container images using Dockerfile best practices.
- How Docker images are composed of layers and why layer order matters
- Structuring Dockerfiles for fast, incremental builds using the layer cache
- Writing a
.dockerignoreand running containers as a non-root user - Reducing image size dramatically with multi-stage builds
- Choosing the right base image (
slim,alpine, distroless) - Safely injecting secrets at build time using
--mount=type=secret
To launch the Labspace, run the following command:
docker compose -f oci://dockersamples/labspace-building-images up -dAnd then open your browser to http://localhost:3030.
If you have the Labspace extension installed (docker extension install dockersamples/labspace-extension if not), you can also click this link to launch the Labspace.
If you find something wrong or something that needs to be updated, feel free to submit a PR. If you want to make a larger change, feel free to fork the repo into your own repository.
Important note: If you fork it, you will need to update the GHA workflow to point to your own Hub repo.
-
Clone this repo
-
Start the Labspace in content development mode:
# On Mac/Linux CONTENT_PATH=$PWD docker compose up --watch # On Windows with PowerShell $Env:CONTENT_PATH = (Get-Location).Path; docker compose up --watch
-
Open the Labspace at http://dockerlabs.xyz.
-
Make the necessary changes and validate they appear as you expect in the Labspace
Be sure to check out the docs for additional information and guidelines.