The Complete Docker And Kubernetes Course: From Zero To Hero - Printable Version +- Softwarez.Info - Software's World! (https://softwarez.info) +-- Forum: Library Zone (https://softwarez.info/Forum-Library-Zone) +--- Forum: Video Tutorials (https://softwarez.info/Forum-Video-Tutorials) +--- Thread: The Complete Docker And Kubernetes Course: From Zero To Hero (/Thread-The-Complete-Docker-And-Kubernetes-Course-From-Zero-To-Hero) |
The Complete Docker And Kubernetes Course: From Zero To Hero - BaDshaH - 10-22-2024 Published 10/2024 MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz Language: English | Size: 21.07 GB | Duration: 32h 39m 30+ hours of content and 130+ hands-on labs for you to master working with Docker, Kubernetes, and Kustomize! What you'll learn Master the Fundamentals of Docker and Containerization Technologies Gain Practical Experience with Docker CLI and Container Lifecycle Management Build, Customize, and Manage Docker Images Using Dockerfiles and Registries Dive Deep into Advanced Image Creation Techniques and Optimization Strategies Implement Robust Data Persistence and Storage Solutions with Docker Volumes Orchestrate Complex Multi-Container Applications Using Docker Compose Master Kubernetes Fundamentals and Core Architecture Gain Practical Experience with Kubernetes Objects and the kubectl CLI Deploy, Scale, and Update Applications Using ReplicaSets and Deployments Implement Advanced Resource Management and Application Health Monitoring Manage Persistent Storage and Stateful Applications with Kubernetes Enhance Security and Automate Configuration Management in Kubernetes Leverage Kustomize to Manage Multiple Kubernetes Environments Explore Google Kubernetes Engine by Deploying and Running a Fully-Fledged Application in a GKE Cluster Requirements Familiarity with any programming language is highly desirable to make the most of this course Familiarity with running commands in the terminal and the command line Description Welcome to Docker and Kubernetes for Beginners: From Zero to Hero! Are you ready to dive into the world of containerization and orchestration with the industry's leading tools? This course is designed to take you from a beginner to a proficient practitioner, equipping you with an in-depth understanding of Docker and Kubernetes concepts.Why Learn Docker and Kubernetes?Docker and Kubernetes have revolutionized the way we develop, deploy, and manage applications in modern architectures. Here's why learning these technologies is essential:Gain Highly Demanded Skills: Docker and Kubernetes are everywhere, and companies need people who can work effectively with these tools! By learning them, you'll make yourself more attractive to employers in the tech industry and enhance your career prospects for promotions, new job opportunities, and potentially higher salaries. You'll stand out in the job market!Improve and Streamline the Development Process: Docker enables you to package applications with all their dependencies into isolated and portable containers, ensuring consistency across development, testing, and production environments.Master Application Deployment, Scaling and Management: Kubernetes will enable you to deploy, manage, and scale applications automatically, making complex tasks such as rolling out new application versions and managing advanced system architectures much simpler.Learn Versatile Tools: Docker and Kubernetes are platform-agnostic, which means that your knowledge will be valuable and applicable independently of which platform you are using to run them! Whether it's on-premises, on AWS, GCP, or Azure, knowing how to work effectively with Docker and Kubernetes will make you a great contributor to your projects!By investing time in learning Docker and Kubernetes, you're not just adding tools to your toolbox-you're enhancing your professional value, opening doors to new opportunities, and equipping yourself with skills that will serve you throughout your career!Why Should You Choose This Course?This course offers a unique blend of theoretical knowledge and practical application, providing a comprehensive understanding of Docker and Kubernetes. Here's why you should include this course in your learning journey:Learn by Doing with Hands-On Exercises: I truly believe in the power of learning by doing. I've not only crafted more than 100 hands-on lectures for you to practice what we discuss, I've also included all of them as written exercise guidelines for you to try and experiment as much as you want before watching the solution recordings! The exercises build on each other and increase gradually in complexity, deepening your understanding and skills while discussing relevant topics of working with Docker and Kubernetes!Comprehensive, Real-World Projects: We'll also go beyond individual hands-on exercises on Docker and Kubernetes, and we'll practice deploying entire applications by going through the entire cycle of coding, building, publishing, and running them!Go Beyond the Purely Technical Points: I place a strong focus on going beyond the "this is how you do it", copy-paste approach. My genuine interest is to teach you how these tools work behind the scenes, how you reason about their behavior, how you debug common issues and situations, and how you make the best use of them in your day-to-day.Real-World Kubernetes Experience with Google Cloud: Our final project is to deploy our application to a managed Kubernetes cluster in Google Cloud. This will give you hands-on experience not only with Docker and Kubernetes, but also with how these tools behave in a managed, real-world setup like Google Kubernetes Engine (GKE).Expert Guidance: I bring several years of experience as a Senior DevOps Engineer, Infrastructure Consultant, and IT trainer within one of the leading IT consulting companies worldwide, and I'm super excited to share my knowledge with you!Which Skills Will You Acquire During This Course?As you go through this course, you will gain a comprehensive and valuable set of skills, including:Creating and Distributing Docker Images: you will learn how to build, customize, optimize, and distribute Docker images using best practices. Running and Managing Containers: you will learn the many aspects related to running containers using Docker, Compose, and Kubernetes, and you will gradually understand how these tools fit together and tackle challenges at different levels of running and managing software applications.Docker Networking and Security Essentials: you will gain a solid foundation on security aspects related to running containers, as well as how to connect containers together using multiple networking solutions.Understanding the Kubernetes Architecture: you will gain a deep and solid understanding of the different components of a Kubernetes cluster, their functions, and how they interact together to deliver this amazing system.Running Applications, Persisting Data, and Managing Resources in Kubernetes: this course takes a deep dive into the many objects Kubernetes offers to run applications, both stateless and stateful, as well as into multiple dimensions of managing compute resources and Kubernetes objects effectively.Kubernetes Security Fundamentals: you will acquire a strong sense of why security is important in Kubernetes, and the many areas where security plays a role in our applications. We will also take a deeper dive into how to set Role-Based Access Control (RBAC) rules, network policies, and pod security standards to ensure your workloads have an additional layer of security.Working with Managed Kubernetes Clusters: you will go through the entire process of creating a cloud account with Google Cloud, all the way to having your applications up and running in a Kubernetes cluster and reachable from the internet securely! This will give you a thorough understanding of how managed Kubernetes services make our lives as developers much easier by integrating multiple services from cloud providers.Get ready to elevate your career with our Docker and Kubernetes for Beginners: From Zero to Hero course. Let's start this exciting journey together! Overview Section 1: Course Introduction Lecture 1 Welcome and motivation! Lecture 2 How to make best use of this course Lecture 3 Aligning expectations Lecture 4 Course resources Section 2:[Docker] Introduction to Containers Lecture 5 Section Introduction Lecture 6 Why Using Containers? Lecture 7 Containers and Virtual Machines (VMs) Lecture 8 Docker Architecture and Components Section 3:[Docker] Installing Docker and Necessary Tools Lecture 9 Section Introduction Lecture 10[MacOS Users] Installing Docker on MacOS Lecture 11[Linux Users] Installing Docker on Linux Lecture 12[Linux Users] Running Docker without Sudo Lecture 13[Windows Users] Installing Windows Subsystem for Linux (WSL) Lecture 14[Windows Users] Windows Subsystem for Linux Features Lecture 15[Windows Users] Installing Docker in Windows Lecture 16[Windows Users] Using Docker in Windows Subsystem for Linux (WSL) Lecture 17 Exploring Play with Docker Lecture 18 Installing NodeJS Lecture 19 Installing Postman Lecture 20 Installing Visual Studio Code Section 4:[Docker] Running Containers with Docker Lecture 21 Section Introduction Lecture 22 Hands-On: Running Your First Container Lecture 23 The Container Lifecycle Lecture 24 Hands-On: Working with the Docker CLI - Part 1 Lecture 25 Hands-On: Working with the Docker CLI - Part 2 Lecture 26 Hands-On: Getting Help in the Docker CLI Section 5:[Docker] Project - Customizing NGINX Containers Lecture 27 Project Overview Lecture 28 Running NGINX Containers Lecture 29 Modifying the Contents of Our NGINX Container Lecture 30 Project Conclusion Section 6:[Docker] Introduction to Docker Images Lecture 31 Section Introduction Lecture 32 What Are Docker Images? Lecture 33 Container Registries Lecture 34 Hands-On: Introduction to DockerHub Lecture 35 Hands-On: Logging Into DockerHub in the Docker CLI Lecture 36 Hands-On: Managing Images with the Docker CLI Lecture 37 Introduction to Dockerfiles Lecture 38 Hands-On: Creating Our First Dockerfile for Nginx Lecture 39 Hands-On: Copying Local Files Into Our Image Lecture 40 Hands-On: Images vs. Containers Section 7:[Docker] Project - Containerize an Express App Lecture 41 Project Introduction Lecture 42 Create a Hello World Express App Lecture 43 Save and Return Users in Memory Lecture 44 Test Users App Lecture 45 Dockerize Our Express App Lecture 46 Explore Interacting with Containers + Project Cleanup Section 8:[Docker] Images Deep Dive Lecture 47 Section Introduction Lecture 48 Hands-On: Docker's Layered Architecture Lecture 49 Hands-On: Build Contexts Lecture 50 Hands-On: Skipping files with Dockerignore Lecture 51 Hands-On: Introduction to Environment Variables Lecture 52 Hands-On: Setting Environment Variables via the CLI Lecture 53 Hands-On: Setting Environment Variables via Files Lecture 54 Hands-On: CMD vs. ENTRYPOINT Lecture 55 Introduction to Distroless Images Lecture 56 Hands-On: Motivation to Multistage Dockerfiles Lecture 57 Hands-On: Multistage Dockerfiles and Distroless Images Lecture 58 Hands-On: Adding Typescript to Our Express App Lecture 59 Hands-On: Update Dockerfile to Transpile Typescript Code Lecture 60 Hands-On: Optimizing Images - The Role of Base Images Lecture 61 Hands-On: Optimizing Images - The Role of Instruction Order Lecture 62 Hands-On: Optimizing Images - The Role of Dependencies Lecture 63 Hands-On: Revisiting and Optimizing Our Typescript Dockerfile Section 9:[Docker] Project - Containerize React App Lecture 64 Project Introduction Lecture 65 Initializing the React App Lecture 66 Build and Serve the React App Lecture 67 Create a Dockerfile for Our React App - Part 1 Lecture 68 Create a Dockerfile for Our React App - Part 2 Section 10:[Docker] Volumes and Data Persistence Lecture 69 Section Introduction Lecture 70 Hands-On: Why Do We Need Volumes? Lecture 71 Introduction to Volumes Lecture 72 Hands-On: Bind Mounts Lecture 73 Hands-On: Named Volumes Lecture 74 Hands-On: Managing Volumes with the CLI Section 11:[Docker] Advanced Topics - Resource Management, Restart Policies, and Networking Lecture 75 Section Introduction Lecture 76 Hands-On: Setting CPU Limits for Containers Lecture 77 Hands-On: Setting Memory Limits for Containers Lecture 78 Hands-On: Restart Policies Lecture 79 Introduction to Networking in Docker Lecture 80 Hands-On: The Default Bridge Network Lecture 81 Hands-On: User-Defined Networks Lecture 82 Hands-On: The Host Network Section 12:[Docker] Project - Code and Deploy a Key-Value App with Data Persistence Lecture 83 Project Introduction Lecture 84 Running a MongoDB Server Lecture 85 Adding Root Credentials to MongoDB Lecture 86 Adding Credentials for the Key-Value Database Lecture 87 Defining Ports, Volumes, and Networks Lecture 88 Improving the Structure of Our Utility Scripts Lecture 89 Setting Up the Express App Lecture 90 Dockerizing the Express App Lecture 91 Create Scripts to Initialize the Backend Container Lecture 92 Adding Hot Reloading with Nodemon Lecture 93 Defining the API Routes Lecture 94 Creating and Getting Key-Value Pairs Lecture 95 Updating and Deleting Key-Value Pairs Lecture 96 Testing the Application and Final Cleanup Section 13:[Docker] Docker Compose Lecture 97 Section Introduction Lecture 98 Docker Compose Overview Lecture 99 Docker-Compose vs. Compose CLI Commands Lecture 100 Hands-On: Run MongoDB with Docker Compose Lecture 101 Hands-On: Environment Variables in Docker Compose Lecture 102 Hands-On: Bind Mounts in Docker Compose Lecture 103 Hands-On: Volumes and Networks in Docker Compose Lecture 104 Hands-On: Adding a Backend Service to Our Docker Compose File Lecture 105 Hands-On: Service Dependencies in Docker Compose Lecture 106 Hands-On: Hot Reloading and Watching for Changes Lecture 107 Hands-On: Docker Compose CLI Lecture 108 Hands-On: Getting Help with Docker Compose CLI Section 14:[Docker] Project - Code and Deploy a Notes App with Docker Compose Lecture 109 Project Introduction Lecture 110 Setup NPM Projects Lecture 111 Dockerize the Notebooks Backend Lecture 112 Setup Docker Compose for Notebooks Services Lecture 113 Setup Docker Compose for Notes Services Lecture 114 Use Multistage Builds for Our Images Lecture 115 Merging Multiple Projects in Docker Compose Lecture 116 Implement the NGINX Reverse Proxy Lecture 117 Establish the Connections between Services Lecture 118 Setup Models and Routes for the Notebooks Service Lecture 119 Implement Routes to Create and Retrieve Notebooks Lecture 120 Implement Routes to Update and Delete Notebooks Lecture 121 Code Refactorings Lecture 122 Implement Routes and Business Logic in the Notes Backend Lecture 123 Storing Notebook IDs in the Notes Service - Part 1 Lecture 124 Storing Notebook IDs in the Notes Service - Part 2 Lecture 125 Storing Notebook IDs in the Notes Service - Part 3 Section 15:[Kubernetes] 10.000-Foot Overview Lecture 126 Section Introduction Lecture 127 Why Use Kubernetes? Lecture 128 What Is Kubernetes? Lecture 129 Kubernetes Architecture Lecture 130 The Control Plane Lecture 131 The Data Plane Lecture 132 The kubectl CLI Section 16:[Kubernetes] Installing Tools Lecture 133[MacOS Users] Installing Kubectl in MacOS Lecture 134[MacOS Users] Installing Minikube in MacOS Lecture 135[Linux Users] Installing Kubectl in Linux Lecture 136[Linux Users] Installing Minikube in Linux Lecture 137[Windows Users] Installing Kubectl in Windows Subsystem for Linux (WSL) Lecture 138[Windows Users] Installing Minikube in Windows Subsystem for Linux (WSL) Section 17:[Kubernetes] Running Containers in Kubernetes Lecture 139 Section Introduction Lecture 140 Introduction to Pods Lecture 141 The Pod Lifecycle Lecture 142 Hands-On: Creating Pods with Kubectl Lecture 143 Hands-On: Managing Pods with Kubectl Lecture 144 Hands-On: Exposing Pods via Services Lecture 145 Hands-On: Color API - Implement v1.0.0 Lecture 146 Hands-On: From Dockerfiles to Pods Section 18:[Kubernetes] Object Management and YAML Manifests Lecture 147 Section Introduction Lecture 148 Object Management in Kubernetes Lecture 149 Kubernetes Manifest Files Lecture 150 Hands-On: Working with Imperative Commands - Part 1 Lecture 151 Hands-On: Working with Imperative Commands - Part 2 Lecture 152 Hands-On: Generating Kubernetes Manifests with kubectl Lecture 153 Hands-On: Shortcomings of Imperative Commands with Configuration Files Lecture 154 Hands-On: Declarative Object Management in Kubernetes Lecture 155 Hands-On: Migrating from Imperative to Declarative Object Management Lecture 156 Hands-On: Creating Multiple Kubernetes Manifests in the Same YAML File Section 19:[Kubernetes] ReplicaSets and Deployments Lecture 157 Section Introduction Lecture 158 What Are ReplicaSets? Lecture 159 Hands-On: Creating and Managing ReplicaSets Lecture 160 Hands-On: Shortcomings of ReplicaSets - Updating Pods Lecture 161 Hands-On: Shortcomings of ReplicaSets - Managing Existing Pods Lecture 162 Introduction to Deployments Lecture 163 Hands-On: Creating and Managing Deployments Lecture 164 Hands-On: Updating the Pod Template Lecture 165 Hands-On: Understanding Rollouts Lecture 166 Hands-On: Scaling Deployments with Kubectl Lecture 167 Hands-On: Troubleshooting Failed Rollouts Section 20:[Kubernetes] Services Deep Dive Lecture 168 Section Introduction Lecture 169 Overview of Services Lecture 170 Hands-On: Color API - Implement v1.1.0: Add hostname information Lecture 171 Hands-On: Traffic Generator - Implement v1.0.0 Lecture 172 Hands-On: Deploy the Color API and Traffic Generator Lecture 173 Hands-On: Working with ClusterIP Services Lecture 174 Hands-On: Working with NodePort Services Lecture 175 Hands-On: NodePort Services in Linux Lecture 176 Hands-On: Working with ExternalName Services Section 21:[Kubernetes] Resource Management Lecture 177 Section Introduction Lecture 178 Labels and Selectors Lecture 179 Hands-On: Labels and Selectors in Kubectl Lecture 180 Hands-On: Selecting Objects with MatchLabels and MatchExpressions Lecture 181 Annotations Lecture 182 Introduction to Namespaces Lecture 183 Hands-On: Creating and Managing Namespaces Lecture 184 Hands-On: Cross-Namespace Service Communication Lecture 185 Introduction to Resource Quotas, Requests, and Limits Lecture 186 Hands-On: Working with Resource Quotas Lecture 187 Hands-On: Setting Resource Requests and Limits Lecture 188 Hands-On: Rollouts, Resource Requests and Limits Lecture 189 Introduction to Startup, Liveness, and Readiness Probes Lecture 190 Hands-On: Color API - Implement v1.2.0: Add health endpoints Lecture 191 Hands-On: Startup Probes in Details Lecture 192 Hands-On: Color API - Implement v1.2.1: Add dedicated startup endpoint Lecture 193 Hands-On: Liveness Probes in Details Lecture 194 Hands-On: Readiness Probes in Details Section 22:[Kubernetes] Storage and Persistence Lecture 195 Section Introduction Lecture 196 Introduction to Volumes Lecture 197 EmptyDir and Local Volumes Lecture 198 Hands-On: Working with EmptyDir Ephemeral Storage Lecture 199 Introduction to Persistent Volume Claims Lecture 200 Hands-On: Creating Persistent Volumes and Persistent Volume Claims Lecture 201 Hands-On: Mounting Volumes in Pods and Containers Lecture 202 Hands-On: Deleting Persistent Volumes and Persistent Volume Claims Lecture 203 Hands-On: Dynamically Provisioning Persistent Volumes Lecture 204 Introduction to StatefulSets Lecture 205 Hands-On: Working with StatefulSets - Creating Persistent Volumes Lecture 206 Hands-On: Working with StatefulSets - Creating the StatefulSet Lecture 207 Hands-On: StatefulSets with Dynamically Provisioned Persistent Volumes Lecture 208 Hands-On: Headless Services Section 23:[Kubernetes] Configuration Management Lecture 209 Section Introduction Lecture 210 Introduction to ConfigMaps Lecture 211 Hands-On: Color API - Implement v1.3.0: Receive color information externally Lecture 212 Hands-On: Passing Information from ConfigMaps via Environment Variables Lecture 213 Hands-On: Mounting ConfigMaps as Volumes Lecture 214 Introduction to Secrets Lecture 215 Hands-On: Passing Information from Secrets via Environment Variables Lecture 216 Hands-On: Mounting Secrets as Volumes Section 24:[Kubernetes] Project - Deploying a MongoDB Database Lecture 217 Project Overview Lecture 218 Create Database Credentials Lecture 219 Create Headless Service and ConfigMaps Lecture 220 Create the StatefulSet Lecture 221 Deploy and Validate the StatefulSet Lecture 222 Test Scaling the StatefulSet Lecture 223 Color API - Implement v2.0.0: Refactoring the Code Lecture 224 Color API - Implement v2.0.0: Persist Data in the MongoDB Database Lecture 225 Color API - Implement v2.0.0: Implement Database Connection Logic Lecture 226 Color API - Implement v2.0.0: Implement Routes for Business Logic Lecture 227 Deploy the New Color API Version Lecture 228 Project Wrap-Up and Clean-Up Section 25:[Kubernetes] Security Fundamentals Lecture 229 Section Introduction Lecture 230 Introduction to Security in Kubernetes Lecture 231 Role-Based Access Control (RBAC) Lecture 232 Hands-On: Overview of Minikube's Roles and ClusterRoles Lecture 233 The Kubernetes API Lecture 234 Hands-On: Exploring API Resources Lecture 235 Hands-On: Creating Two Users: Alice and Bob Lecture 236 Hands-On: Configure Access Credentials for Alice and Bob Lecture 237 Hands-On: Setup Permissions to Read Pods Lecture 238 Hands-On: Use ClusterRoles for Cluster-Wide Permissions Lecture 239 Hands-On: Exploring Subresources and Permissions Lecture 240 Introduction to Service Accounts Lecture 241 Hands-On: Default Service Accounts Lecture 242 Hands-On: Creating Our Own Service Accounts Lecture 243 Hands-On: RBAC - Clean-Up Lecture 244 Introduction to Network Policies Lecture 245 Calico vs. Native Kubernetes Network Policies Lecture 246 Hands-On: Deny All Ingress Traffic Lecture 247 Hands-On: Allow Traffic Between Specific Pods Lecture 248 Hands-On: Exploring Pod Selectors Lecture 249 Hands-On: Combining Pod Selectors Lecture 250 Hands-On: Handling Egress Traffic Lecture 251 Hands-On: Network Policies and Namespaces Lecture 252 Introduction to Pod Security Standards (PSS) Lecture 253 Hands-On: Working with Pod Security Standards Lecture 254 Hands-On: Exploring the Pod Security Standards Documentation Section 26:[Kubernetes] Kustomize Lecture 255 Section Introduction Lecture 256 Introduction to Kustomize Lecture 257 Hands-On: Our First Kustomize Project Lecture 258 Bases and Overlays Lecture 259 Hands-On: Creating the Dev and Prod Overlays Lecture 260 Transformations Lecture 261 Hands-On: Working with Transformations Lecture 262 Hands-On: Generating ConfigMaps Lecture 263 Hands-On: Generating Secrets Lecture 264 Hands-On: Introduction to Patching Lecture 265 Hands-On: Working with Strategic Merge Patches Lecture 266 Hands-On: Working with JSON Patches Section 27:[Kubernetes] Project - Deploying Our Color API to Google Kubernetes Engine (GKE) Lecture 267 Project Overview Lecture 268 Creating a Google Cloud Platform (GCP) Account Lecture 269 Overview of Project Costs Lecture 270 Overview of GCP's UI Console Lecture 271 Installing the gcloud CLI Lecture 272 Exploring the GKE UI Console Lecture 273 Create a Google Kubernetes Engine (GKE) Cluster Lecture 274 Connecting kubectl and GKE Lecture 275 Deploying an Nginx-based Website Lecture 276 Exploring Storage Classes in GKE Lecture 277 Exploring API Resources in GKE Lecture 278 Create Database Credentials for MongoDB Lecture 279 Deploy the MongoDB StatefulSet - Part 1 Lecture 280 Deploy the MongoDB StatefulSet - Part 2 Lecture 281 Deploy the MongoDB StatefulSet - Part 3 Lecture 282 Deploy the Color API Application Lecture 283 Create a LoadBalancer Service for External Access Lecture 284 Color API - Implement v2.1.0-dev: Expose Prometheus Metrics Lecture 285 Customize Database Deployments Lecture 286 Deploy Prod Overlay and Customize Dev Color API Image Lecture 287 Deny All Ingress and Allow Traffic Between Color API and MongoDB Lecture 288 Allow External Traffic into Color API Pods Lecture 289 Register Our Website Domain Lecture 290 Allocate Static IPs for Ingress Lecture 291 Create Ingress Objects Lecture 292 Create Managed TLS Certificates Lecture 293 Test Ingress Traffic from the Web Towards the Color API Pods Lecture 294 Project Cleanup Section 28: Congratulations! Lecture 295 Congratulations + BONUS Lecture! Software Engineers looking for up-to-date, relevant, and practical knowledge in both Docker and Kubernetes,Developers who wish to expand their knowledge on working effectively with Docker and Kubernetes,DevOps Practitioners who wish to gain deeper knowledge into Docker and Kubernetes Homepage |