Course Contents / Lesson Plan
Course Title: Docker Certified Associate
Duration: 3 Month
| Trainer Name | 
 | ||||||||||||||||||
| Author | 
 | ||||||||||||||||||
| Course Title | Docker Certified Associate | ||||||||||||||||||
| Objectives and Expectations 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | ·         Docker is a popular platform for developing, shipping, and running applications in containers. Containers provide a lightweight and portable way to package and isolate applications and their dependencies, allowing them to run consistently across different environments. The primary objectives and expectations of Docker include: · Containerization: · Isolation: Docker containers encapsulate an application and its dependencies, ensuring that it runs consistently across various environments. · Portability: Containers can run on any system that supports Docker, providing a consistent environment from development to production. · Efficiency: · Resource Optimization: Containers share the host OS kernel, which makes them more efficient in terms of resource utilization compared to virtual machines. · Quick Start-Up: Containers can start up in seconds, allowing for rapid deployment and scaling. · DevOps and Continuous Integration/Continuous Deployment (CI/CD): · Consistency: Docker ensures consistency between development, testing, and production environments, reducing the “it works on my machine” problem. · Automated Builds: Docker facilitates the creation of Docker images through Dockerfiles, allowing for automated and reproducible builds. · Microservices Architecture: · Modularity: Docker supports a microservices architecture by allowing developers to break down applications into smaller, independently deployable and scalable components. · Orchestration: · Docker Swarm and Kubernetes: Docker can be integrated with orchestration tools like Docker Swarm or Kubernetes to manage and scale containerized applications across a cluster of machines. · Version Control and Rollback: · Image Versioning: Docker images can be versioned, providing a mechanism for version control and rollback in case of issues with newer releases. · Security: · Isolation: Containers provide process isolation, reducing the attack surface and enhancing security. · Immutable Infrastructure: Docker promotes the concept of immutable infrastructure, where containers are treated as disposable, and changes are made by creating new containers rather than modifying existing ones. · Collaboration: · Registry Services: Docker Hub and other container registries allow developers to share and collaborate on pre-built container images. · Cost Reduction: · Resource Utilization: Docker’s efficient resource utilization can lead to cost savings in terms of infrastructure requirements. Ecosystem and Community: Extensive Ecosystem: Docker has a vast ecosystem of tools and technologies that enhance its functionality. Community Support: Docker has a large and active community that contributes to its development and provides support. In summary, Docker aims to provide a consistent and efficient environment for developing, packaging, and running applications, promoting collaboration, scalability, and automation in the software development lifecycle. 
 | ||||||||||||||||||
| Entry-level of trainees | Four-year degree (bachelor’s degree or global equivalent) 
 | ||||||||||||||||||
| Learning Outcomes of the course | The learning outcomes of a Docker course typically revolve around gaining a comprehensive understanding of Docker’s key concepts, features, and practical skills for using Docker in various scenarios. Here are common learning outcomes you might expect from a Docker course: Understanding Containerization: Define what containers are and understand the advantages of containerization over traditional virtualization. Docker Architecture: Explain the architecture of Docker, including the Docker daemon, Docker client, Docker images, and Docker containers. Installation and Setup: Install Docker on different operating systems (Windows, Linux, macOS) and configure basic settings. Docker Images: Create Docker images using Dockerfiles and understand the layers within images. Pull and push Docker images from/to Docker Hub or other container registries. Container Lifecycle: Start, stop, and restart containers. Manage the lifecycle of Docker containers, including pausing, removing, and inspecting containers. Networking in Docker: Understand Docker networking concepts, including bridge networks, host networks, and overlay networks. Configure networking for Docker containers. Storage in Docker: Manage data persistence using Docker volumes. Understand storage drivers and their impact on container storage. Docker Compose: Define multi-container applications using Docker Compose. Orchestrate multiple containers as a part of a single application. Docker Swarm: Understand the basics of Docker Swarm for orchestrating and scaling containers. Deploy and manage services in a Docker Swarm. Security Best Practices: Implement security best practices for Docker, including container isolation, user privileges, and image vulnerability scanning. Integration with CI/CD: Integrate Docker into a Continuous Integration/Continuous Deployment (CI/CD) pipeline. Automate the build and deployment processes using Docker. Troubleshooting: Identify and resolve common issues and errors related to Docker containers. Use Docker CLI and logs for troubleshooting. Scalability and Load Balancing: Scale applications by distributing containers across multiple hosts. Implement load balancing for containerized applications. Monitoring and Logging: Implement monitoring and logging solutions for Docker containers. Utilize tools like Docker Stats, Prometheus, and ELK stack for container monitoring. Community and Resources: Know where to find additional resources, documentation, and community support for Docker-related topics. By the end of a Docker course, participants should have gained practical hands-on experience and be well-equipped to use Docker in real-world scenarios, whether for development, testing, or production deployments. | ||||||||||||||||||
| Course Execution Plan | The total duration of the course:  3 months (12 Weeks) Class hours: 4 hours per day Theory: 20% Practical: 80% Weekly hours: 20 hours per week Total contact hours: 240 hours | ||||||||||||||||||
| Companies offering jobs in the respective trade | Here are some types of companies that frequently seek professionals with Docker expertise: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 When searching for Docker-related jobs, you can use job search platforms like LinkedIn, Indeed, Glassdoor, and specialized IT job boards. Additionally, exploring company career pages and attending industry-related events or conferences can provide valuable insights into job opportunities. | ||||||||||||||||||
| Job Opportunities | ·         Information Technology · Construction · Healthcare · Finance and Banking · Engineering · Manufacturing · Consulting · Telecommunications · Energy and Utilities: | ||||||||||||||||||
| No of Students | 25 | ||||||||||||||||||
| Learning Place | Classroom / Lab | ||||||||||||||||||
| Instructional Resources | 1.    Docker Tutorials : 2. https://www.youtube.com/watch?v=RqTEHSBrYFw 
 
 
 Online Course Website 
 
 
 | 
MODULES
| Scheduled Weeks | Module Title | Days | Hours | Learning Units | Home Assignment | 
| Week 1 | Introduction to Docker 
 
 
 
 
 
 
 
 
 
 
 
 
 | Day 1 | Hour 1 | Introduction to Containerization | · Task 1 
 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Understanding containerization concepts | ||||
| Hour 3 | Advantages of containerization | ||||
| Hour 4 | Revision/Questions | ||||
| Day 2 | Hour 1 | Docker Architecture and Installation | |||
| Hour 2 | Overview of Docker architecture 
 | ||||
| Hour 3 | Installing Docker 
 | ||||
| Hour 4 | Revision/Questions | ||||
| Day 3 | Hour 1 | Docker Images | |||
| Hour 2 | Working with Docker images | ||||
| Hour 3 | Managing Docker containers | ||||
| Hour 4 | Revision/Questions | ||||
| Day 4 | Hour 1 | Docker Networking Basics | |||
| Hour 2 | Docker networking modes | ||||
| Hour 3 | Managing Docker networks | ||||
| Hour 4 | Revision/Questions | ||||
| Day 5 | Hour 1 | Installing Docker on various platforms 
 | |||
| Hour 2 | Docker Images and Containers | ||||
| Hour 3 | Introduction Docker CLI | ||||
| Hour 4 | Revision/Questions | ||||
| Week 2 | Working with Docker | Day 1 | Hour 1 | Docker CLI Fundamentals | · Task 2 
 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Essential Docker CLI commands | ||||
| Hour 3 | Managing Docker containers from the command line | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Docker Volumes and Storage | |||
| Hour 2 | Understanding Docker storage drivers | ||||
| Hour 3 | Working with Docker volumes | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Dockerfile Basics | |||
| Hour 2 | Introduction to Docker file | ||||
| Hour 3 | Writing Docker files | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Docker Compose Fundamentals | |||
| Hour 2 | Introduction to Docker Compose | ||||
| Hour 3 | Writing Docker Compose YAML files | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical 
 | |||
| Week 3 | Docker Orchestration 
 
 
 
 
 
 
 
 
 
 | Day 1 | Hour 1 | Introduction to Docker Swarm | ·  Task 3 
 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Overview of Docker Swarm | ||||
| Hour 3 | Creating a Docker Swarm cluster | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Deploying Applications with Swarm | |||
| Hour 2 | Deploying services to Docker Swarm | ||||
| Hour 3 | Service scaling and updates in Swarm | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Introduction to Kubernetes | |||
| Hour 2 | Overview of Kubernetes architecture | ||||
| Hour 3 | Deploying Kubernetes clusters | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Deploying Applications with Kubernetes | |||
| Hour 2 | Creating Kubernetes deployments | ||||
| Hour 3 | Service discovery and load balancing in Kubernetes | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical Revision | |||
| Week 4 | Docker Security and Monitoring | Day 1 | Hour 1 | Docker Security Principles | ·  Task 4 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Overview of Docker security features | ||||
| Hour 3 | Best practices for securing Docker environments | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Container Monitoring and Logging | |||
| Hour 2 | Monitoring Docker containers and hosts | ||||
| Hour 3 | Configuring logging for Docker containers | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Docker Swarm Security and Monitoring | |||
| Hour 2 | Securing Docker Swarm clusters | ||||
| Hour 3 | Monitoring Docker Swarm services and nodes | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Kubernetes Security and Monitoring | |||
| Hour 2 | Securing Kubernetes clusters | ||||
| Hour 3 | Monitoring Kubernetes pods, services, and nodes | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | LAB Practical | |||
| Week 5 | Advanced Docker Concepts | Day 1 | Hour 1 | Docker Networking Advanced | ·  Task 5 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Advanced Docker networking concepts | ||||
| Hour 3 | Docker overlay networks | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Docker Storage Management | |||
| Hour 2 | Advanced Docker storage management | ||||
| Hour 3 | Docker volume plugins | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Docker High Availability | |||
| Hour 2 | High availability strategies for Docker | ||||
| Hour 3 | Docker Swarm and Kubernetes HA configurations | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Docker Performance Tuning | |||
| Hour 2 | Performance optimization techniques for Docker | ||||
| Hour 3 | Monitoring and optimizing Docker resource usage | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | LAB Practical | |||
| Week 6 | Continuous Integration and Deployment | Day 1 | Hour 1 | Introduction to CI/CD with Docker | ·  Task 6 
 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Overview of CI/CD concepts | ||||
| Hour 3 | Integrating Docker with CI/CD pipelines | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Building Docker Images in CI/CD | |||
| Hour 2 | Automated Docker image builds | ||||
| Hour 3 | Docker image versioning and tagging strategies | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Docker Deployment Strategies | |||
| Hour 2 | Blue-green deployment with Docker | ||||
| Hour 3 | Canary deployment with Docker | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Docker Monitoring Tools | |||
| Hour 2 | Overview of Docker monitoring tools | ||||
| Hour 3 | Setting up monitoring and alerting for Docker containers | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| Week 7 | Docker Ecosystem and Integrations | Day 1 | Hour 1 | Docker Compose in Production | ·  Task 7 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Using Docker Compose for production deployments | ||||
| Hour 3 | Best practices for Docker Compose usage | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Docker Orchestration with Ansible | |||
| Hour 2 | Automating Docker Swarm and Kubernetes deployments with Ansible | ||||
| Hour 3 | Managing Docker containers with Ansible | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Docker with Terraform | |||
| Hour 2 | Managing Docker infrastructure with Terraform | ||||
| Hour 3 | Provisioning Docker clusters using Terraform | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Docker in Cloud Environments | |||
| Hour 2 | Deploying Docker containers on AWS, Azure, and Google Cloud Platform | ||||
| Hour 3 | Integrating Docker with cloud-native services | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| Week 8 | DOS/DDOS & SQL Injection Attack | Day 1 | Hour 1 | Project Work: Designing Dockerized Application | ·  Task 8 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Designing a containerized application architecture | ||||
| Hour 3 | Selecting appropriate Docker tools and services | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Project Work: Implementing Dockerized Application | |||
| Hour 2 | Implementing Docker best practices in the application | ||||
| Hour 3 | Testing and debugging the Dockerized application | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Project Work: Deployment and Optimization | |||
| Hour 2 | Deploying the Dockerized application to production | ||||
| Hour 3 | Performance optimization and scaling strategies | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Review and Feedback | |||
| Hour 2 | Reviewing key Docker concepts and topics covered | ||||
| Hour 3 | Providing feedback on the course content and delivery | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-2 | Practical / Lab | |||
| Week 9 | Docker Networking and Security | Day 1 | Hour 1 | Advanced Docker Networking | ·  Task 9 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Docker overlay networks and multi-host networking | ||||
| Hour 3 | Implementing network segmentation and security in Docker | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 
 | Hour 1 | Docker Security Best Practices | |||
| Hour 2 | Hardening Docker containers and hosts | ||||
| Hour 3 | Implementing security policies and controls | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 
 | Hour 1 | Docker Secrets Management | |||
| Hour 2 | Managing sensitive data in Docker applications | ||||
| Hour 3 | Docker secrets and configuration management | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 
 | Hour 1 | Docker Security Scanning | |||
| Hour 2 | Scanning Docker images for vulnerabilities | ||||
| Hour 3 | Implementing continuous security scanning in Docker environments | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| Week 10 | Docker Performance Optimization | Day 1 | Hour 1 | Docker Resource Management | · Task 10 
 Details may be seen at Annexure-I 
 | 
| Hour 2 | Docker resource constraints and limitations | ||||
| Hour 3 | Managing CPU, memory, and I/O resources in Docker | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 
 | Hour 1 | Docker Performance Tuning | |||
| Hour 2 | Identifying and resolving performance bottlenecks in Docker | ||||
| Hour 3 | Optimizing Docker container and image size | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 
 | Hour 1 | Docker Load Balancing | |||
| Hour 2 | Load balancing strategies for Docker containers | ||||
| Hour 3 | Implementing Docker container orchestration with load balancers | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 
 | Hour 1 | Docker Logging and Monitoring | |||
| Hour 2 | Logging best practices for Docker containers | ||||
| Hour 3 | Implementing monitoring solutions for Docker environments | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| Week 11 | Docker Advanced Concepts | Day 1 | Hour 1 | Docker Storage Drivers | ·  Task 11 Details may be seen at Annexure-I 
 | 
| Hour 2 | Understanding Docker storage drivers and options | ||||
| Hour 3 | Selecting appropriate storage drivers for different use cases | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 
 | Hour 1 | Docker Networking Plugins | |||
| Hour 2 | Extending Docker networking with plugins | ||||
| Hour 3 | Implementing custom networking solutions in Docker | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 
 | Hour 1 | Docker Plugin Development | |||
| Hour 2 | Developing custom plugins for Docker | ||||
| Hour 3 | Integrating third-party services with Docker using plugins | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 
 | Hour 1 | Docker Community and Ecosystem | |||
| Hour 2 | Exploring the Docker community and ecosystem | ||||
| Hour 3 | Contributing to Docker projects and initiatives | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| Week 12 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Week 13 | Docker Project Work and Review 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | Day 1 | Hour 1 | Project Work: Designing Dockerized Application | · Task 12 Details may be seen at Annexure-I 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Final Project 
 
 | 
| Hour 2 | Designing a containerized application architecture | ||||
| Hour 3 | Selecting appropriate Docker tools and services | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 2 | Hour 1 | Project Work: Implementing Dockerized Application | |||
| Hour 2 | Implementing Docker best practices in the application | ||||
| Hour 3 | Testing and debugging the Dockerized application | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 3 | Hour 1 | Project Work: Deployment and Optimization | |||
| Hour 2 | Deploying the Dockerized application to production | ||||
| Hour 3 | Performance optimization and scaling strategies | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 4 | Hour 1 | Final Review and Feedback | |||
| Hour 2 | Reviewing key Docker concepts and topics covered | ||||
| Hour 3 | Providing feedback on the course content and delivery | ||||
| Hour 4 | Revision/Questions/Practice | ||||
| Day 5 | Hour 1-4 | Practical / Lab | |||
| 
 
 
 
 
 
 Final Exam and Assessment | 
| Task No. | Task | Description | Week | 
| 1. | Docker Installation | · Install Docker on a Linux server following best practices. | Week 1 | 
| 2. | Building Docker Image | · Create a Dockerfile to build a custom image for a Node.js application. | Week 2 | 
| 3. | Docker Networking | · Configure a custom Docker network for communication between containers. | Week 3 | 
| 4. | Container Orchestration | · Deploy a multi-container application using Docker Compose. | Week 4 | 
| 5. | Swarm Cluster Setup | · Set up a Docker Swarm cluster with at least three nodes. | Week 5 | 
| 6. | Swarm Service Deployment | · Deploy a service on Docker Swarm, ensuring high availability. | Week 6 | 
| 7. | Docker Security Scanning | · Perform a security scan on a Docker image using Docker Security Scan. | Week 7 | 
| 8. | Docker Volumes | · Use Docker volumes to persist data between container restarts. | Week 8 | 
| 9. | Kubernetes Basics | · Deploy a simple application on a Kubernetes cluster. | Week 9 | 
| 10. | Kubernetes Pods | · Create and manage pods in a Kubernetes cluster. | Week10 | 
| 11. | Kubernetes Deployments | · Implement rolling updates for a Kubernetes Deployment. | Week11 | 
| 12. | Kubernetes ConfigMaps and Secrets | · Utilize ConfigMaps and Secrets to manage application configuration. | Week12 | 
| 13. | Docker CI/CD Integration | · Set up a CI/CD pipeline using Docker to automate image builds and deployments. | |
| 14. | Monitoring Docker Containers | · Implement monitoring for Docker containers using Prometheus and Grafana. | |
| 15. | Troubleshooting Docker Containers | · Troubleshoot and resolve common issues with Docker containers and services. | |
| 16 | Final Exam | · Create a Dockerfile for a Python application that installs dependencies, sets environment variables, copies the application code, and exposes the necessary port. | 
 
 
				 
           
 
        
         
        
        