DockerLabs Hands-on¶

- Welcome to the lab workspace that accompanies the DockerLabs project.
- Each folder below is a self-contained lab that you can complete independently to sharpen specific containerization skills.
- Follow the README file in each lab for detailed steps.
How to Use Those Labs¶
- There are several ways to run the Docker Labs.
- Choose the method that works best for you.
Killercoda (Recommended)- 📜 From Source
Using Google Cloud Shell
- The easiest way to get started with the labs
- Learn Docker in your browser without any local installation
Benefits:
- No installation required
- Pre-configured environment
- Works on any device with a web browser
- All tools pre-installed
For those who prefer to run it directly on their machine:
# Clone the repository
git clone https://github.com/nirgeier/DockerLabs.git
# Change to the Labs directory
cd DockerLabs/Labs
# Start with the Docker CLI lab
cd 001-DockerCli
# Follow the instructions in the README of each lab
cat README.md
- Ansible installed on your system
- A Unix-like operating system (Linux, macOS, or Windows with WSL)
- Basic command-line tools
- Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
- Click on the
Open in Google Cloud Shellbutton below:
- The repository will automatically be cloned into a free Cloud instance.
- Use CTRL + click to open it in a new window.
- Follow the instructions in the README of each lab.
Benefits:
- No local installation required
- Pre-configured environment
- Works on any device with a web browser
- All tools pre-installed
- Free tier available
Lab Index¶
-
001 - Docker CLI¶
Practice the core Docker CLI commands for running, inspecting, and managing containers.
-
002 - Dockerfile Basics¶
Build your first Node.js container image from a Dockerfile and publish it to a registry.
-
003 - Dockerfile Multi-Stage¶
Learn how multi-stage Dockerfiles produce lean images across build targets.
-
004 - Local Registry¶
Stand up a private registry, retag images, and push or pull them locally.
-
005 - Docker Compose Stack¶
Orchestrate a WordPress and MariaDB stack with Docker Compose.
-
006 - Compose Environments¶
Structure Compose files and env vars for dev and prod workflows.
-
007 - Docker Compose Fragments¶
Learn advanced Docker Compose features with fragments and modular configurations.
-
008 - CRI
crictl¶
Learn about container runtime interface tooling using crictl.
-
009 - Dive Layers¶
Explore image layer creation and visualize them with the dive tool.
-
010 - Docker Bake¶
Use Docker Buildx Bake to coordinate complex, multi-target image builds.
-
011 - Security & Trust¶
Learn advanced Docker security features and best practices for container security.
-
012 - gVisor Seccomp¶
Apply a gVisor runtime profile to block privileged syscalls inside a container.
-
013 - onictl¶
Learn about container networking with onictl.
-
100 - Hands-On Intro¶
Guided Node.js exercise covering the full build, run, and publish workflow.
Tasks¶
| Task | Description |
|---|---|
| DockerCommit | In-class exercise for capturing container changes with docker commit. |
| DockerDebug | Debugging challenge: troubleshoot a crashing Flask container and fix missing configurations. |
| DockerfileAdvanced | Advanced Dockerfile exercise covering BuildKit secrets, caching, and health checks. |
| DockerLogs | In-class exercise for running cowsay container, managing logs, and debugging. |
| MultiStage | In-class exercise for creating multi-stage Dockerfiles with alpine and node images. |
Happy learning and hacking with Docker!