Skip to content

DockerLabs Hands-on

DockerLabs Banner


  • 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

🌐 Launch on Killercoda

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
Prerequisites:

  • 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 Shell button below:

Open in Cloud Shell

  • 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.

    Get started

  • 002 - Dockerfile Basics


    Build your first Node.js container image from a Dockerfile and publish it to a registry.

    Get started

  • 003 - Dockerfile Multi-Stage


    Learn how multi-stage Dockerfiles produce lean images across build targets.

    Get started

  • 004 - Local Registry


    Stand up a private registry, retag images, and push or pull them locally.

    Get started

  • 005 - Docker Compose Stack


    Orchestrate a WordPress and MariaDB stack with Docker Compose.

    Get started

  • 006 - Compose Environments


    Structure Compose files and env vars for dev and prod workflows.

    Get started

  • 007 - Docker Compose Fragments


    Learn advanced Docker Compose features with fragments and modular configurations.

    Get started

  • 008 - CRI crictl


    Learn about container runtime interface tooling using crictl.

    Get started

  • 009 - Dive Layers


    Explore image layer creation and visualize them with the dive tool.

    Get started

  • 010 - Docker Bake


    Use Docker Buildx Bake to coordinate complex, multi-target image builds.

    Get started

  • 011 - Security & Trust


    Learn advanced Docker security features and best practices for container security.

    Get started

  • 012 - gVisor Seccomp


    Apply a gVisor runtime profile to block privileged syscalls inside a container.

    Get started

  • 013 - onictl


    Learn about container networking with onictl.

    Get started

  • 100 - Hands-On Intro


    Guided Node.js exercise covering the full build, run, and publish workflow.

    Get started


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!