Course Overview
Containerization technology provides flexibility to develop the application much faster and more secure manner as part of DevOps and DevSecOps culture adopted by many of the Organization in today IT industry.
We as VisualPath Team has come up with a course that simplifies the understanding of Containerization technology.
Containerization creates an OS level virtualization to save lot of resources consumption and run more application on a platform.
Docker tools helps initially to understand the core feature of Containerizing the application with Image build, Networking, Storage, etc.,
Docker provides tools like Docker Engine, Docker Desktop, Docker Compose, Docker Machine, and Docker Swarm.
Docker Engine helps to spin containers and run any sort of application (Nginx, MySQL, Hadoop, ML, etc.,) with predefined and Custom Images.
Kubernetes Orchestration tool helps to containers specific to application as POD workload to have common network and shared storage.
After Kubernetes developed with wide number of features, usage of Docker Swarm was suppressed by many of the Organizations to run application on a Cluster environment.
In this course of Kubernetes, we will be understanding the architecture, cluster setup and configuration, workloads, objects, networking, monitoring, storage, and many more...
We will be focusing on Docker Engine, Docker Compose (Orchestration tool to manage resources on Docker Engine), Kubernetes Cluster (On-premises), Monitoring, and Projects from each platform of different sort of applications like Wordpress, Jenkins, Node application.
Docker Engine CE (Community Edition) and Kubernetes Orchestration are open-source where we can install on our local machines and understand the features provided by those, where we will be focusing in the course all together.
The key principles of learning any technology is fundamentals and troubleshooting (through Monitoring services) to sustain for longer period in IT industry with new technologies.
After completion of the Course you can plan for Kubernetes certifications like CKA (Certified Kubernetes Administrator) and CKAD (Certified Kubernetes Application Developer)
Students Review:
Mudasir Bashir
This course on Docker and Kubernetes was excellent and very in-depth—highly recommended for anyone looking to build a solid foundation in containerization and orchestration. I would like to sincerely thank the trainer for the clear explanations and hands-on approach. My request to the trainer is to consider creating more advanced courses, particularly focusing on deployment using Helm, as it would be extremely valuable for practitioners in the DevOps space. Thanks again!
Shahed R
Master Docker & Kubernetes course is a great learning resource for anyone who wants A to Z understanding with hands-on experience. Anyone who wants to indulge and take a deep dive into containerization and its orchestration then this is the course to take. These videos are a true bang for your buck!
Deepak R
The Docker and Kubernetes course on Udemy is fantastic! The instructor explains concepts in-depth, making it easy to understand. Highly recommend for anyone wanting to learn these technologies
FAQ
FAQ area empty
Course curriculum
-
What is a Docker container
755 -
Nginx application container creation Part 1
907 -
Nginx application container creation Part 2
839 -
MySQL Deployment
713 -
Container creation Workflow in Docker Engine
396 -
Configure static IP address for Docker host machine
695 -
Understanding how to access applications from outside of Docker host machine
507 -
Practical session on accessing applications from outside of Docker Host
466 -
Understanding container restart policy
827 -
Container restart policy
1763 -
Introduction to WordPress and MySQL Deployment
329 -
WordPress and MySQL Deployment on Docker Engine
949 -
Resource cleanup
99 -
Introduction to Jenkins CICD application
409 -
Jenkins CICD deployment on Docker Engine
682 -
Points to remember while creating container (rm, exec, create)
633 -
Difference between docker container create and run
185
-
What is Docker Image for Containers
658 -
Understanding Docker Image and Container Layers
714 -
Disk utilization of Containers and Images
614 -
Docker Hub account creation and pricing
482 -
Docker Image pull workflow
115 -
Push and Pull Images from Docker Hub
1044 -
Share Images in Docker Hub account
318 -
Introduction to Dockerfile (A Custom Image Build Solution from Docker)
566 -
Dockerfile - FROM parameter
771 -
Dockerfile - MAINTAINER and RUN parameter (with and without build cache)
1100 -
Dockerfile - LABEL and ENV parameter
1514 -
Dockerfile - ARG and EXPOSE parameter
1171 -
Dockerfile - COPY and ADD parameter
1711 -
Dockerfile - ENTRYPOINT and CMD parameter
1342 -
Dockerfile - SHELL and WORKDIR parameter
958 -
Dockerfile - STOPSIGNAL and HEALTHCHECK parameter
1038 -
Dockerfile - VOLUME and USER parameter
1124 -
Demo : Deploy Nginx app on Ubuntu 22.04 base image as non-root user
1867 -
How to choose right base Image to save the size (Ubuntu Vs Alpine)
928
-
Introduction to Docker Storage types
957 -
Understanding volume mount with scenarios Part 1
1661 -
Understanding volume mount with scenarios Part 2
336 -
Understanding Jenkins deployment using volume mount architecture
172 -
Jenkins CICD application deployment using volume mount
915 -
Understanding bind mount with scenarios Part 1
395 -
Understanding bind mount with scenarios Part 2
576 -
Understanding Jenkins deployment using bind mount architecture
147 -
Jenkins CICD application deployment using bind mount
524 -
Docker tmpfs mount
767 -
Points to remember while using Storage
341 -
Understanding remote storage using NFS server
279 -
Implement Docker volume mount with NFS server
1238
-
Network types suppported by Docker
1225 -
Docker default bridge network
950 -
Docker user-defined bridge network
996 -
User-defined bridge network managed by Daemon
261 -
Container with static IP address allocation
674 -
Points to remember while using Bridge network
1065 -
Understanding Host network
396 -
Demo on host network creation
821 -
Points to remember while using Host network
340 -
Understanding None network
238 -
None network
559 -
Understanding Docker overlay network
761 -
Implementing Docker overlay network
1891 -
Points to consider while working with overlay network
317
-
Introduction to UI access
352 -
Portainer archirecture and pricing details
244 -
Setup and configure Portainer on Docker Engine
286 -
Access Portainer dashboard
249 -
Part 1 - Environments
500 -
Part 2 - Containers
419 -
Part 3 - Network, Images, and Volumes
759 -
App templates and stack
361 -
Conclusion - limitations of community edition
331
-
High level view of Kubernetes architecture and components
425 -
Common components for control and compute plane nodes
242 -
Introduction to Kubernetes control plane components
91 -
Kubernetes control plane components working principle
1501 -
Introduction to Kubernetes compute plane components
130 -
Kubernetes compute plane components working principle
1068 -
Kubernetes Components ports and protocols
241
-
Tools to setup kubernetes cluster and Cloud service
318 -
Overview on single and multi node setup using kubeadm tool
566 -
Why Containerd not Docker (K8S dropped support for Docker)
532 -
Kubernetes single node setup using kubeadm tool (CRI_ Containerd)
3060 -
Kubernetes multi-node setup using kubeadm tool (CRI_Containerd)
1768 -
Part 1 - Kubernetes HA setup using kubeadm tool (CRI_ containerd)
506 -
Part 2 - Kubernetes HA setup using kubeadm tool (CRI_containerd)
1281 -
Part 3 - Kubernetes HA setup using kubeadm tool (CRI_containerd)
591 -
Part 4 Kubernetes HA setup using kubeadm tool (CRI_containerd)
747 -
Part 5 - Kubernetes HA setup using kubeadm tool (CRI_containerd)
645
-
Kubernetes Objects overview
242 -
POD overview
541 -
Intergrating VS code with K8S cluster
673 -
Overview on K8S objects creation using imperative and declarative approach
285 -
POD creation using Declarative approach
1275 -
POD creation using Imperative approach
748 -
POD creation workflow
251 -
POD resource allocation CPU and Memory
1644 -
POD multi-container with shared volume
823 -
Handling containers in POD using crictl (restart container POD)
391 -
Access POD application outside cluster (hostPort)
719 -
POD init Containers Introduction
689 -
Demo : POD init Containers
1104 -
POD Lifecycle - restart policy
1317 -
Static POD (controlled by Kubelet)
293 -
Challenges of standalone POD applications
385
-
When to learn Statefulset workload resource
140 -
Introduction to K8S Service and Types
164 -
Overview on need of Service for workload resources
976 -
Introduction to ClusterIP service
417 -
Demo: Overview on Service type ClusterIP
1130 -
Demo: Service (ClusterIP) with Endpoint
351 -
Demo: Service ClusterIP type creation using Imperative approach
325 -
Demo: Service selector and pod labels
563 -
Advanced: Traffic flow from client (POD) to service to target PODs
336 -
Introduction to NodePort service
546 -
Demo: Overview on Service type NodePort
664 -
Demo: Service NodePort type creation using Imperative approach
318 -
Demo: Customize service NodePort range and IP addresses range
497 -
Advanaced: Traffic flow from external to node to service to POD
252 -
Introduction to LoadBalancer service
666 -
Introduction to MetalLB for On-premises K8S cluster
336 -
Demo: Deploying MetalLB on cluster (On-premises)
1211 -
Advanced: Traffic flow while using LoadBalancer service type
268 -
Introduction to ExternalIP service
151 -
Demo: Overview on Service type ExternalIP
469 -
Introduction to ExternalName service
273 -
Demo: Overview on Service type ExternalName
528 -
Introduction to Headless service (ClusterIP & None)
613 -
Demo: Overview on Service type Headless (ClusterIP & None)
1004
-
Introduction to Kubernetes Storage types
124 -
Overview on Kubernetes Volumes
124 -
Overview on Kubernetes Volumes
764 -
EmptyDir: Working principle of emptyDir volume type
297 -
EmptyDir: Demo for emptyDir volume type (Disk and Memory)
1918 -
HostPath: Working principle of hostPath volume type
315 -
HostPath: Demo for hostPath volume type (Directory and DirectoryOrCreate)
862 -
HostPath: Demo for hostPath volume type (File and FileOrCreate)
602 -
NFS: Working principle of nfs volume type
270 -
Setup NFS server for Kubernetes Volume Demo
414 -
NFS: Demo for NFS volume type
753 -
NFS: Jenkins CICD Deployment Object with active and passive mode
2283 -
DownwardAPI: Demo on downwardAPI (Information_ fieldRef)
907 -
DownwardAPI: Demo on downwardAPI (Information_ resourcefieldRef)
955
-
Introduction to Persistent Storage
1180 -
Understanding Persistent Volume Access Modes
364 -
Demo: Static PV and PVC (volume plugin & hostPath)
2279 -
Demo: PV and PVC management (hostPath)
840 -
Demo: Static PV and PVC (volume plugin & nfs)
2245 -
Demo: Persistent Volume Reclaim Policies (nfs - retain, recycle, delete)
1507 -
Introduction to Access Modes for PV and PVC
423 -
Demo: Access Modes
2519 -
Understanding PV phases
248
-
Introduction to Kubernetes Configuration
128 -
Introduction to Kubernetes ConfigMap
452 -
Demo: Handling ConfigMap using Imperative approach (environment variables)
2523 -
Demo: Handling ConfigMap using Declarative approach (environment variables)
405 -
Demo: Handling ConfigMap using Declarative approach (volume plugin)
2766 -
Demo: Immutable ConfigMap
234 -
Introduction to Kubernetes Secrets
518 -
Demo: Handling Secrets using Imperative approach (environment variables)
1505 -
Demo: Handling Secrets using Declarative approach
386 -
Demo: Handling Secrets using Declarative approach (volume plugin)
1077 -
Demo: Secrets to pull registry Private images (imagePullSecrets)
1313
-
Introduction to Kubernetes scheduler
795 -
Demo: Scheduling POD using nodeName
930 -
Demo: Scheduling POD using nodeSelector
1486 -
Introduction to nodeAffinity operators
338 -
Demo: Scheduling POD using nodeAffinity (requiredDuringScheduling)
977 -
Demo: preferred and required for nodeAffinity
470 -
Demo: nodeAntiAffinity using NotIn operator
293 -
Demo: Scheduling POD using podAffinity (requiredDuringScheduling)
1145 -
Demo: Scheduling POD using podAffinity (preferredDuringScheduling)
661 -
Demo: Scheduling POD using podAntiAffinity (requiredDuringScheduling)
655 -
Demo: Scheduling POD using podAntiAffinity (preferredDuringScheduling)
273 -
Demo: Scheduling POD using Taints and Tolerations (NoSchedule)
1433 -
Demo: Scheduling POD using Taints and Tolerations (NoExecute)
643
-
Introduction to Kubernetes Authentication and Authorization strategies
402 -
Understanding Kubernetes authentication
438 -
Understanding Kubernetes authorization
414 -
Working principle of Cloud Kubernetes cluster
186 -
Understanding kubeconfig file
1125 -
Demo: K8S authenticating using cert based (Role and RoleBinding)
1814 -
Demo: K8S authenticating using cert based (ClusterRole and ClusterRoleBinding)
978 -
Understanding k8s ServiceAccount
516 -
Demo: K8S POD to use Service Account
1599 -
Demo: K8S authenticating using SA based (Role and RoleBinding)
1499 -
Demo: K8S authenticating using SA based (ClusterRole and ClusterRoleBinding)
363 -
Demo: How to handle multiple context in kubeconfig file
461
-
How to access applications in k8s from outside cluster
279 -
Introduction to Ingress Controller
649 -
Understanding Nginx Ingress Controller for On-premises K8S
440 -
Demo: Deploy Nginx Ingress Controller
981 -
Demo: Deploy Ingress resource for applications in k8s (host-based routing)
1536 -
K8s Ingress resource workflow (host-based routing)
272 -
Demo: TLS termination for Ingress resource (host-based routing)
771 -
K8S Ingress resource workflow (path-based routing)
281 -
Demo: Deploy Ingress resource for applications in k8s (path-based routing)
728
-
Introduction to Kubernetes Network Policy
967 -
Understanding Network Policy resource implementation (calico network policy)
161 -
Demo: Network Policy Implementation with podSelector (Ingress type)
1919 -
Demo: Network Policy Implementation with namespaceSelector (Ingress type)
766 -
Demo: Network Policy Implementation with ipBlock (Ingress type)
897 -
Demo: Network Policy with podSelector and namespaceSelector (Ingress type)
773 -
Demo: Network Policy with podSelector and namespaceSelector (Egress type)
706 -
Demo: Network Policy with ipBlock (Egress type)
409 -
Understanding Default Network Policies
626
-
Introduction to monitoring tools for Kubernetes
540 -
Introduction to Prometheus
223 -
Understanding prometheus components and architecture
393 -
Understanding prometheus manifest files
414 -
Deploy Promethues on Kubernetes cluster
243 -
Access Prometheus dashboard
799 -
Metric server for Prometheus
119 -
Understanding Grafana manifest files
280 -
Deploy Grafana on Kubernetes cluster
258 -
Access Grafana dashboard with node-exporter
731 -
Grafana dashboard
359 -
Resource cleanup
99 -
Understanding Docker overlay network
761 -
Implementing Docker overlay network
1891 -
Points to consider while working with overlay network
317 -
Understanding Jenkins deployment using volume mount architecture
172 -
Jenkins CICD application deployment using volume mount
915 -
Introduction to WordPress and MySQL Deployment
329 -
Understanding remote storage using NFS server
279 -
Implement Docker volume mount with NFS server
1238 -
Deploy Nginx app on Ubuntu 22.04 base image as non-root user
1867 -
GitHub and Docker Hub account walk through
200 -
GitHub integration with VS Code
567 -
Scenario 1: Implement Dockerfile for Nginx webapp
630 -
Scenario 1: GitHub Secrets for authentication
360 -
Scenario 1: GitHub actions workflow YAML (GitHub actions)
1721 -
Scenario 1: GitHub actions execution
794 -
Scenario 2: Repository tags
1249 -
Scenario 2: Repository tags
410 -
Image vulnerability scan implementation (build and push action)
643 -
CICD workflow: Commit changes to run Image scan (dynamic tagging)
335 -
Manual: Run github workflow
203 -
Run Build, Scan and Push github workflow
1207 -
Project agenda
98 -
AWS EC2 Instance setup for Docker Engine
233 -
WordPress and MySQL Deployment on Docker Engine
949 -
EC2 ssh access and configuration
235 -
Basic check of Docker Engine tool and directory structure
153 -
K8SEngineers application deployment workflow
54 -
PostgreSQL: deployment workflow
122 -
PostgreSQL: Implement Dockerfile
304 -
PostgreSQL: Implement scripts to initialize
348 -
PostgreSQL: Download and access initial DB backup file
73 -
PostgreSQL: Build image from Dockerfile
126 -
Launch PostgreSQL database
277 -
NodeJS deployment workflow
135 -
Backend: Clone repository for k8sengineers backend code
65 -
Backend: Implement Dockerfile
315 -
Backend: Define ENV for NodeJS to access PostgreSQL
154 -
Backend: Build Image from Dockerfile
155 -
Backend: Launch NodeJS container
132 -
Backend: Check NodeJS health after deployment
165 -
ReactJS deployment workflow
174 -
Frontend: Clone repository for k8sengineers frontend code
62 -
Frontend: Implement Dockerfile
475 -
Frontend: Build image from Dockerfile
182 -
Frontend: Launch ReactJS container
134 -
Allow ports to access k8sengineers application
62 -
Conclusion_ Access application to verify deployment
246 -
Changes for Docker Compose
185 -
Implement Docker compose file
667 -
Image build with Docker compose
418 -
Deploy service with Docker compose
112 -
Update AWS Rote53 with A and CNAME record
137 -
Access application after deployment
63 -
Cleanup activity
96
-
Project Introduction
34 -
Docker Project: Project agenda
98 -
Docker Project: AWS EC2 Instance setup for Docker Engine
233 -
Docker Project: EC2 ssh access and configuration
235 -
Docker Project: Basic check of Docker Engine tool and directory structure
153 -
Docker Project: K8SEngineers application deployment workflow
54 -
Docker Engine: PostgreSQL deployment workflow
122 -
Docker Engine: PostgreSQL Implement Dockerfile
304 -
Docker Engine: PostgreSQL Implement scripts to initialize
348 -
Docker Engine: PostgreSQL Download and access initial DB backup file
73 -
Docker Engine: PostgreSQL Build image from Dockerfile
126 -
Docker Engine: Launch PostgreSQL database
277 -
Docker Engine: NodeJS deployment workflow
135 -
Docker Engine: Backend Clone repository for k8sengineers backend code
65 -
Docker Engine: Backend: Implement Dockerfile
315 -
Docker Engine: Backend: Define ENV for NodeJS to access PostgreSQL
154 -
Docker Engine: Backend: Build Image from Dockerfile
155 -
Docker Engine: Backend: Launch NodeJS container
132 -
Docker Engine: Backend: Check NodeJS health after deployment
165 -
Docker Engine: ReactJS deployment workflow
174 -
Docker Engine: Frontend: Clone repository for k8sengineers frontend code
62 -
Docker Engine: Frontend: Implement Dockerfile
475 -
Docker Engine: Frontend Build image from Dockerfile
182 -
Docker Engine: Frontend: Launch ReactJS container
134 -
Docker Engine: Allow ports to access k8sengineers application
62 -
Docker Engine: Conclusion: Access application to verify deployment
246
-
Introduction to Helm charts
243 -
Understanding: Chart.yaml file parameters
697 -
Understanding: templates folder and values.yaml file purpose
623 -
Understanding: LICENSE and README file
108 -
Understanding: .helmignore and NOTES.txt file
213 -
Understanding: charts folder
198 -
Understanding: _helpers.tpl file
463 -
Understanding: JSON schema file and crds folder
408 -
Understanding: test folder
338
-
Recap: Implement Nginx application deployment templates
214 -
Part1: Implement values.yaml for template files
1029 -
Part2: Implement values.yaml for template files
980 -
Predefined variables (Release)
514 -
Predefined variables (Capabilities)
430 -
Part1: Handling _helpers.tpl in template files (template)
1244 -
Part2: Handling _helpers.tpl in template files (include)
673 -
Part3: Handling _helpers.tpl in template files (include)
704 -
Part1: Helm test using test hook (helm testing)
1100 -
Part2: Helm test using delete policy hook (helm testing)
590 -
Part3: Types of delete policy hook (helm testing)
127
-
Introduction to MYSQL application deployment process using manifests
313 -
Deploy MySQL app through manifest approach
1652 -
Part1: Implement values for pv template files
1037 -
Part2: Implement pv template files with labels
459 -
Part3: Implement pv template files with annotations
273 -
Part1: Implement values for secrets template files
731 -
Part2: Implement values for secrets template files with annotations and labels
638 -
Implement values for service template file
1070 -
Part1: Implement statefulset template for MySQL
725 -
Part2: Implement statefulset template for MySQL
656 -
Part3: Implement statefulset template for MySQL
629 -
Part4: Implement statefulset template for MySQL
355 -
Implement Job template for MySQL backup
1320 -
Implement CronJob template for scheduled backups
721 -
Deploy MySQL application with all templates enabled
432 -
Cleanup MySQL chart
176
Requirment
-
Basic understanding of OS and Networking would be sufficient to start with these tools
-
Need some amount of basic skills in Linux (Ubuntu Server) OS to deploy all the tools
-
Even if you are from non-IT background, still you will be able to understand the technology and how these application are deployed
Outcomes
-
In modern application deployment, containerization plays a key role to run any sort of application with ease with Docker tools and Kubernetes Orchestration tool
-
Course was designed for every audience like IT professionals and non-IT professionals as well to be master in Containerization technology
-
This Course providers knowledge on many tools to understand the containerization technology
-
You will be having lot of exposure to in depth knowledge on each and every feature of Docker tools and Kubernetes Orchestration with examples
0 Student
1 Course
0 review