https://i124.fastpic.org/big/2024/1108/2b/71ecd0bc2592ee6efe6452721401d22b.jpg
The Complete Docker And Kubernetes Course: From Zero To Hero
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 Ha