Duration 4 days – 28 hrs
Overview
Docker is an open-source platform for automating the process of building, shipping and running applications inside containers. Kubernetes goes one step further by providing the tools needed to deploy and manage containerized applications at scale in a clustered environment. Participants will learn how to create and manage Docker containers, and then deploy a sample application inside a container. Participants will also learn how to automate, scale, and manage their containerized applications within a Kubernetes cluster. Finally, the training goes on to more advanced topics, walking participants through the process of securing, scaling and monitoring a Kubernetes cluster.
Objectives
- Understand containerization fundamentals and distinguish between containers and traditional virtual machines.
- Explain the architecture and components of Docker, including how Docker interacts with the Linux kernel.
- Install and configure Docker on a system and use it to manage images, containers, volumes, and networks.
- Create and deploy Docker containers and images, including building Dockerfiles and managing Docker registries (public/private).
- Run and manage containerized applications such as Java EE web applications using Docker.
- Set up and manage networking and volumes in Docker to enable communication and persistent storage.
- Understand the role of container orchestration and gain a foundational knowledge of Kubernetes architecture.
- Deploy and manage applications on Kubernetes, using key resources such as Pods, Deployments, Services, and Volumes.
- Implement Kubernetes security features, including authentication, authorization, and best practices for secure deployments.
- Monitor Kubernetes clusters and containers using tools like Prometheus, cAdvisor, Elasticsearch, and Fluentd.
- Configure and manage networking in Kubernetes, and compare it with Docker networking capabilities.
- Scale applications in Kubernetes using horizontal pod autoscaling and load balancing techniques.
- Build a highly available Kubernetes cluster infrastructure, with considerations for provisioning, partitioning, and redundancy.
- Perform application updates and rollouts in Kubernetes, and manage release strategies effectively.
- Troubleshoot Docker and Kubernetes environments using structured diagnostic methods and logging tools.
Audience
- DevOps Engineers seeking to implement CI/CD pipelines with containers
- System Administrators and IT Operations Engineers managing cloud-native infrastructure
- Software Developers and Application Architects deploying microservices and container-based applications
- Site Reliability Engineers (SREs) ensuring scalable, resilient deployments
- Cloud Engineers working with AWS, Azure, or GCP environments
- Technical Leads and Solution Architects planning container adoption and orchestration strategies
- IT Professionals preparing for Docker and Kubernetes certification exams
- Technology teams transitioning from legacy deployments to modern containerized infrastructure
Pre-requisites
- Understanding of networking concepts
- Understanding of how web applications work
- Familiarity with Linux command line
- Basic understanding of virtualization concepts
Content
Day 1: Docker Essentials and Foundations
Focus: Fundamentals of containers, Docker architecture, installation, and basic usage.
- Introduction
- Containers vs Virtual Machines
- Speed and Performance
- Overview of Docker Architecture
- Docker and the Linux Kernel
- Docker Components (Client, Daemon, Images, Registry, Containers)
- Using Docker to Run and Manage Containers
- Images, Containers, Volumes, Networks
- Installing Docker
- Pulling an Image from the Internet
- Sample: Apache Tomcat
- Running the Container
- Docker Registries (Public vs Private)
- Creating and Managing Dockerfiles
- Building a Docker Image
- Deploying a Web Application
- Sample Application: Java EE Application Server
- How Docker Containers Communicate
- Configuring Volumes and Networks in Docker
- Linking and State
- Recap / Q&A
Day 2: Kubernetes Introduction and Core Concepts
Focus: Kubernetes architecture, basic deployment, and security.
- Brief Overview of Container Orchestration
- Deep Dive into Container Orchestration with Kubernetes
- Overview of Kubernetes Architecture
- Pods, Labels/Selectors, Replication Controllers, Services, API
- Installing a Kubernetes Cluster
- Creating Kubernetes Pods, Volumes and Deployments
- Grouping and Organizing Your Cluster
- Discovering and Publishing Services
- Discovering and Connecting to Containers
- Deploying a Web Application
- Handling Application Components
- Handling Database Connections
- Kubernetes Security
- Authentication & Authorization
- Recap / Q&A
Day 3: Advanced Kubernetes – Networking & Monitoring
Focus: Networking fundamentals, monitoring solutions, and security integration.
- Advanced Networking
- Docker Networking vs Kubernetes Networking
- Monitoring Kubernetes
- Cluster Logging with Elasticsearch and Fluentd
- Container-Level Monitoring (cAdvisor UI, InfluxDB, Prometheus)
- Troubleshooting Common Issues
- Hands-on Lab or Guided Exercise (Networking + Monitoring)
- Recap / Q&A
Day 4: Scaling, HA, and Production Readiness
Focus: Scaling, high availability, service discovery, and rolling updates.
- Scaling Your Kubernetes Cluster
- Infrastructure for Kubernetes
- Provisioning, Partitioning, Networking
- Building a High-Availability Cluster
- Load Balancing and Service Discovery
- Deploying a Scalable Application
- Horizontal Pod Auto Scaling
- Database Clustering in Kubernetes
- Updating Your Application
- Releases in Kubernetes
- Final Troubleshooting & Best Practices
- Summary and Closing Remarks
- Final Lab / Capstone Deployment Exercise
- Open Q&A / Feedback Session


