Docker in practice: build, ship and run containers confidently across environments.
Hands-on labs with images, registries, volumes and networking.
Secure, monitor and orchestrate containers with Compose and best practices.
Gain practical experience through ~70% labs using real-world Docker workflows.
How this helps: apply Docker effectively in development and production setups.
Who it’s for: designed for individuals with basic Linux skills who want container expertise.
Includes end-to-end project simulating real deployment scenarios.
Curriculum
Initial setup
- Understand Docker editions and install Docker on Windows/Linux
- Run a few simple containers
Main commands
- Essential Docker CLI commands
- Various ways to start a container
- Commands for dealing with images and containers
- Logging with multiple Docker containers
Building a Dockerfile
- Create a base image and reuse it for derived images
- Images and their layers; working with repositories
- Write Dockerfiles
- Configure sshd, users, groups, permissions, shared folders
Docker internals
- Container vs VM
- Kernel namespaces (hands-on)
- CLI process monitoring
- Container lifecycle and persistent storage: volumes, path expansion, bind mounts
The servers and a sample application
- Build a sample multi-service app
- DNS server
- Two web servers
- A load balancer
- A DB server (Postgres)
- Optional: an email server
Working with swarms
- Docker Compose and Swarm basics
- Most important compose commands
- Built-in orchestration
- Scale out with overlay networking or routing mesh
- Use secrets in swarm services
- Swarm application lifecycle
Kubernetes essentials
- Intro and comparison with Swarm; why Kubernetes?
- Installing Kubernetes; minikube, microk8s
- kubectl run, create, apply
- Your first Pod
- Create a NodePort and a LoadBalancer
- Running, exposing and using Generators
Optional modules
Advanced topics (optional)
- Multi-stage builds, BuildKit cache mounts, and multi-arch builds with buildx
- Advanced networking: bridge/host/macvlan/ipvlan, overlay internals, routing mesh vs. ingress
- Security hardening: rootless Docker, user namespaces, seccomp/AppArmor/SELinux, capabilities
- Image governance: SBOMs (Syft), image scanning (Trivy/Grype), signing (cosign/Notary v2)
- Storage deep-dive: volumes vs. bind mounts vs. tmpfs, volume drivers, performance on macOS/Windows
- Observability: logging drivers (json-file, journald, syslog, fluentd), metrics (cAdvisor), eBPF tools
- Registries: private registry, Harbor, access control and retention policies
- CI/CD integration: GitHub Actions/GitLab CI caching, ephemeral test environments
- Kubernetes add-ons: Deployments/Services/Ingress, Helm basics, RBAC, Secrets/ConfigMaps best practices
- Swarm advanced: rolling updates, constraints/placement, node labels, secrets & configs
Course Day Structure
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30