Chapter 1: Introduction to Containerization
- Lesson 1: What is Containerization?
- Lesson 2: Benefits of Containerization in DevOps
- Lesson 3: Overview of Container Tools (Docker, Podman, Kubernetes, etc.)
- Lesson 4: Comparing Docker with Other Container Tools
Chapter 2: Introduction to Docker
- Lesson 1: What is Docker and Why Use It?
- Lesson 2: History and Evolution of Docker
- Lesson 3: Key Features of Docker
- Lesson 4: Docker in the DevOps Workflow
Chapter 3: Setting Up Docker
- Lesson 1: Installing Docker on Various Platforms (Windows, macOS, Linux)
- Lesson 2: Configuring Docker for the First Time
- Lesson 3: Setting Up Docker in an IDE (e.g., Visual Studio Code, IntelliJ)
- Lesson 4: Exploring Docker Desktop
- Lesson 5: Installing Docker Toolbox
Chapter 4: Docker Basics
- Lesson 1: Understanding Images and Containers
- Lesson 2: The Docker Architecture (Client, Daemon, and Registry)
- Lesson 3: Pulling and Running Docker Images
- Lesson 4: Container Lifecycle: Start, Stop, and Remove
- Lesson 5: Understanding the Docker CLI
- Lesson 6: Managing Docker Layers
- Lesson 7: Docker Container & Host Interaction
Chapter 5: Managing Docker Images
- Lesson 1: Building Docker Images from a Dockerfile
- Lesson 2: Optimizing Docker Images (Layers, Multi-Stage Builds)
- Lesson 3: Tagging and Versioning Docker Images
- Lesson 4: Pushing Images to Docker Hub and Other Registries
- Lesson 5: Scanning Images for Vulnerabilities
- Lesson 6: Public and Private Repositories
Chapter 6: Working with Docker Containers
- Lesson 1: Running Containers with Environment Variables
- Lesson 2: Managing Data with Volumes
- Lesson 3: Networking in Docker: Bridge, Host, and Overlay Networks
- Lesson 4: Inspecting and Logging Docker Containers
- Lesson 5: Using Docker Exec for Interactive Container Sessions
- Lesson 6: Linking Containers
- Lesson 7: Configuring Containers and Shells
Chapter 7: Advanced Docker Features
- Lesson 1: Docker Compose: Defining Multi-Container Applications
- Lesson 2: Docker Swarm: Built-In Container Orchestration
- Lesson 3: Using Docker Secrets for Secure Data Management
- Lesson 4: Setting Up Health Checks for Containers
- Lesson 5: Resource Limits: CPU, Memory, and Storage
- Lesson 6: Managing Ports in Docker
- Lesson 7: Setting Up Web Servers (e.g., NGINX, Apache)
Chapter 8: Docker Networking
- Lesson 1: Introduction to Docker Networking
- Lesson 2: Creating and Managing Custom Networks
- Lesson 3: Linking Containers Across Networks
- Lesson 4: Exposing and Mapping Ports in Docker
- Lesson 5: DNS Resolution in Docker
Chapter 9: Security in Docker
- Lesson 1: Best Practices for Securing Docker Containers
- Lesson 2: Managing Permissions and User Accounts in Containers
- Lesson 3: Running Containers with Non-Root Users
- Lesson 4: Using Docker Content Trust (DCT)
- Lesson 5: Scanning and Fixing Vulnerabilities
Chapter 10: Docker in DevOps Workflows
- Lesson 1: Continuous Integration/Continuous Deployment (CI/CD) with Docker
- Lesson 2: Integrating Docker with Jenkins, GitHub Actions, and GitLab CI
- Lesson 3: Docker as a Build Environment for Applications
- Lesson 4: Dockerized Testing Environments
- Lesson 5: Deploying Applications with Docker Compose and Swarm
- Lesson 6: Docker in Cloud Environments
Chapter 11: Troubleshooting Docker
- Lesson 1: Understanding Docker Logs
- Lesson 2: Common Docker Errors and How to Fix Them
- Lesson 3: Using Docker Inspect for Debugging
- Lesson 4: Recovering and Restarting Stuck Containers
- Lesson 5: Cleaning Up Unused Images, Containers, and Volumes
- Lesson 6: Configuring Docker for Debugging
Chapter 12: Exploring New Features in Docker
- Lesson 1: Overview of Docker's Release Cycle
- Lesson 2: Recent Updates and Features in Docker
- Lesson 3: Experimental Features and How to Use Them
- Lesson 4: Staying Updated with Docker’s Ecosystem
- Lesson 5: Generative AI Integration with Docker
Chapter 13: Real-World Applications of Docker
- Lesson 1: Docker in Microservices Architectures
- Lesson 2: Using Docker for Development and Testing
- Lesson 3: Docker in Production Environments
- Lesson 4: Case Studies | How Companies Leverage Docker
- Lesson 5: Best Practices in Dockerized Workflows
Chapter 14: Beyond Docker | Container Ecosystem
- Lesson 1: Introduction to Kubernetes and Orchestration
- Lesson 2: Comparing Docker Swarm and Kubernetes
- Lesson 3: Exploring Docker Alternatives (e.g., Podman, CRI-O)
- Lesson 4: Transitioning from Docker to Kubernetes
Chapter 15: Docker and Kubernetes Architecture
- Lesson 1: Docker’s Role in Kubernetes
- Lesson 2: Kubernetes Networking with Docker
- Lesson 3: Docker Images in Kubernetes Pods
- Lesson 4: Docker Commands in Kubernetes Workflows
- Lesson 5: Case Study | Kubernetes with Docker Swarm Integration
Chapter 16: Docker and Database Setups
- Lesson 1: Setting Up MySQL in Docker
- Lesson 2: Running MongoDB Containers
- Lesson 3: Dockerizing PostgreSQL Applications
- Lesson 4: Working with MariaDB Containers
- Lesson 5: Managing Redis Instances with Docker
Chapter 17: Setting Up Applications with Docker
- Lesson 1: Dockerizing Node.js Applications
- Lesson 2: Running Python Apps in Docker
- Lesson 3: Deploying Java Applications in Docker Containers
- Lesson 4: Hosting ASP.NET Applications in Docker
- Lesson 5: Configuring Go and Rust Applications in Docker
Chapter 18: Docker Hosting and Cloud Integration
- Lesson 1: Hosting Applications with Docker in AWS
- Lesson 2: Using Docker with Azure Cloud Services
- Lesson 3: Docker and Google Cloud Platform (GCP)
- Lesson 4: Docker Build Cloud: Automated Builds
- Lesson 5: Setting Up Portainer for Docker Management
Chapter 19: Monitoring and Logging in Docker
- Lesson 1: Configuring Docker Logs for Analysis
- Lesson 2: Setting Up Monitoring with Grafana
- Lesson 3: Integrating Docker with ELK Stack
- Lesson 4: Metrics and Alerts for Docker Applications
- Lesson 5: Troubleshooting Using Logs
Chapter 20: Advanced Settings in Docker
- Lesson 1: Using Alpine and BusyBox for Minimal Containers
- Lesson 2: Configuring Traefik as a Reverse Proxy
- Lesson 3: Setting Up Plex and Nextcloud in Docker
- Lesson 4: Customizing Docker for Specific Applications
- Lesson 5: Docker’s Role in Hybrid Cloud Scenarios