Docker

Docker – Table of Contents

1. Linux Kernel & Container Fundamentals

  • Namespaces → PID, Mount, Network, IPC, UTS, User
  • cgroups → CPU, Memory, I/O, PIDs limits
  • Filesystem isolation with chroot
  • Experimenting with unshare to create isolated environments
  • How Docker and Podman use namespaces and cgroups internally

2. Introduction

  • What is Docker?
  • Benefits of containerization
  • Docker vs Virtual Machines
  • Containers vs Low-Level Runtimes (CRI-O, containerd)

3. Installation & Setup

  • Install Docker on Linux, Windows, macOS
  • Docker Desktop
  • Docker Engine vs Docker Desktop
  • Verify installation

4. Docker Architecture

  • Docker Daemon
  • Docker Client
  • Docker Images
  • Docker Containers
  • Docker Registries (Docker Hub, private registries)
  • Low-level container runtimes: CRI-O & containerd

5. Working with Docker Images

  • Building images with Dockerfile
  • Using prebuilt images
  • Managing images (docker pull, docker images, docker rmi)
  • Image layers & storage drivers

6. Working with Containers

  • Running containers (docker run)
  • Listing, starting, stopping, removing containers
  • Detached mode & interactive mode
  • Executing commands inside containers
  • Understanding isolation using namespaces
  • Resource control using cgroups
  • Low-level experiments with unshare and chroot

7. Docker Networking

  • Bridge network
  • Host network
  • Overlay network
  • Custom networks
  • Port mapping & exposing services
  • Network namespaces overview

8. Docker Volumes & Storage

  • Bind mounts vs volumes
  • Creating and using volumes
  • Sharing data between containers
  • Backup & restore volumes
  • Storage namespaces & container filesystem isolation

9. Docker Compose

  • Introduction to Compose
  • docker-compose.yml structure
  • Multi-container applications
  • Environment variables & scaling

10. Docker Security

  • Best practices
  • User namespaces
  • Scanning images
  • Secrets management
  • Seccomp & AppArmor profiles

11. Docker in CI/CD

  • Using Docker in pipelines
  • Building and pushing images
  • Deploying with Docker
  • Integration with Kubernetes using CRI-O/containerd

12. Advanced Docker

  • Multi-stage builds
  • Health checks
  • Resource limits (CPU & memory)
  • Logging & monitoring
  • Low-level runtime configuration

13. Troubleshooting

  • Common errors
  • Debugging containers
  • Checking logs & events
  • Using docker inspect and runtime debug tools

14. Docker vs Alternatives

  • Podman
  • LXC/LXD
  • CRI-O & containerd