Docker & Kubernetes The Practical Guide 2023 Edition

Learn Docker, Docker Compose, Multi-Container Projects, Deployment and all about Kubernetes from the ground up!
Docker & Kubernetes The Practical Guide 2023 Edition
File Size :
9.47 GB
Total length :
23h 40m



Academind by Maximilian Schwarzmüller


Last update

Last updated 11/2022



Docker & Kubernetes The Practical Guide 2023 Edition

What you’ll learn

Learn what Docker and Kubernetes are and why you might want to use them
Learn how to install and use Docker on any system (macOS, Windows, Linux)
Learn how to create and use Images & Containers with Docker
Understand complex topics like managing and persisting data with Volumes
Learn about Container Networking with Docker Networks and DNS Service Discovery
Learn how to deploy Docker applications – manually, with managed services or with Kubernetes

Docker & Kubernetes The Practical Guide 2023 Edition


NO prior Docker or Kubernetes experience is required!
Basic (web) development knowledge is required – you don’t need to know a specific language though
AWS (used in a couple of deployment examples, ~4 hours of the course) requires a credit card – you can also follow along passively though


Join this bestselling Docker & Kubernetes course and learn two of the most important development technologies from the ground up, in great detail!Docker & Kubernetes are amongst the most in-demand technologies and topics you can learn these days.Why?Because they significantly simplify the development and deployment process of both simple and complex software projects. Especially in web development (though not limited to that), Docker can really take you to the next level!With Docker, you create and manage so-called “Containers” – basically packages of code and tools required to run that code. These containers allow you to run your programs in a predictable, environment-independent way – no matter where you need to run it.For modern DevOps but also for local development – on your own or in a team – this is a winner feature since you will no longer have any “but it worked on my machine” discussions. It works inside of a container, hence it works everywhere!This course will teach you both Docker & Kubernetes from the ground up with all the required theory and tons of examples and demos!We’ll explore all key concepts in detail and with practical examples and demos – from images and containers, over volumes and networking all the way up to deployment and Kubernetes Cluster: This course has it all!In detail, this course includes the following topics:A thorough introduction to Docker, containers and why you might want to use DockerDetailed setup instructions for macOS and WindowsA deep-dive into the core concepts you need to know: Containers & imagesLearn how to create custom images, use existing images and how to run containers based on such imagesGet a detailed overview of the core commands you need when working with DockerLearn how to work with data and how to persist data with volumesExplore container networking – with the outside world and between multiple containersLearn how to work with both single and multi-container projectsIn-depth deployment instructions: Manual deployment and deployment with managed services like AWS ECSUnderstand Kubernetes core concepts & architectureLearn how to create Kubernetes resources, deployments, services and how to run your containers with KubernetesDive deeply into working with data in Kubernetes projects – with different types of volumesKubernetes networking and DNS service discoveryLearn how to deploy your Kubernetes project (at the example of AWS EKS)And much more!All these topics are taught in great detail with slides and theory but also, most importantly, with many examples and demo!You’ll find tons of demo projects throughout the course – using programming languages like NodeJS, Python or PHP (with Laravel). You don’t need to know these languages to follow along though, no worries!


Section 1: Getting Started

Lecture 1 Welcome to the Course

Lecture 2 What Is Docker?

Lecture 3 Why Docker & Containers?

Lecture 4 Join Our Learning Community

Lecture 5 Virtual Machines vs Docker Containers

Lecture 6 Docker Setup – Overview

Lecture 7 Docker Setup – macOS

Lecture 8 Docker Setup – Windows

Lecture 9 Docker Setup – Docker Toolbox for Older Systems

Lecture 10 Docker Playground

Lecture 11 An Overview of the Docker Tools

Lecture 12 Installing & Configuring an IDE

Lecture 13 Getting Our Hands Dirty!

Lecture 14 Course Outline

Lecture 15 How To Get The Most Out Of This Course

Lecture 16 Course Resources

Section 2: Docker Images & Containers: The Core Building Blocks

Lecture 17 Module Introduction

Lecture 18 Images & Containers: What and Why?

Lecture 19 Using & Running External (Pre-Built) Images

Lecture 20 Our Goal: A NodeJS App

Lecture 21 Building our own Image with a Dockerfile

Lecture 22 Running a Container based on our own Image

Lecture 23 EXPOSE & A Little Utility Functionality

Lecture 24 Images are Read-Only!

Lecture 25 Understanding Image Layers

Lecture 26 A First Summary

Lecture 27 Managing Images & Containers

Lecture 28 Stopping & Restarting Containers

Lecture 29 Understanding Attached & Detached Containers

Lecture 30 Attaching to an already-running Container

Lecture 31 Entering Interactive Mode

Lecture 32 Deleting Images & Containers

Lecture 33 Removing Stopped Containers Automatically

Lecture 34 A Look Behind the Scenes: Inspecting Images

Lecture 35 Copying Files Into & From A Container

Lecture 36 Naming & Tagging Containers and Images

Lecture 37 Sharing Images – Overview

Lecture 38 Pushing Images to DockerHub

Lecture 39 Pulling & Using Shared Images

Lecture 40 Module Summary

Lecture 41 Module Resources

Section 3: Managing Data & Working with Volumes

Lecture 42 Module Introduction

Lecture 43 Understanding Data Categories / Different Kinds of Data

Lecture 44 Analyzing a Real App

Lecture 45 Building & Understanding the Demo App

Lecture 46 Understanding the Problem

Lecture 47 Introducing Volumes

Lecture 48 A First, Unsuccessful Try

Lecture 49 Named Volumes To The Rescue!

Lecture 50 Removing Anonymous Volumes

Lecture 51 Getting Started With Bind Mounts (Code Sharing)

Lecture 52 Bind Mounts – Shortcuts

Lecture 53 Combining & Merging Different Volumes

Lecture 54 A NodeJS-specific Adjustment: Using Nodemon in a Container

Lecture 55 Volumes & Bind Mounts: Summary

Lecture 56 A Look at Read-Only Volumes

Lecture 57 Managing Docker Volumes

Lecture 58 Using “COPY” vs Bind Mounts

Lecture 59 Don’t COPY Everything: Using “dockerignore” Files

Lecture 60 Adding more to the .dockerignore File

Lecture 61 Working with Environment Variables & “.env” Files

Lecture 62 Environment Variables & Security

Lecture 63 Using Build Arguments (ARG)

Lecture 64 Module Summary

Lecture 65 Module Resources

Section 4: Networking: (Cross-)Container Communication

Lecture 66 Module Introduction

Lecture 67 Case 1: Container to WWW Communication

Lecture 68 Case 2: Container to Local Host Machine Communication

Lecture 69 Case 3: Container to Container Communication

Lecture 70 Analyzing the Demo App

Lecture 71 Creating a Container & Communicating to the Web (WWW)

Lecture 72 Making Container to Host Communication Work

Lecture 73 Container to Container Communication: A Basic Solution

Lecture 74 Introducing Docker Networks: Elegant Container to Container Communication

Lecture 75 How Docker Resolves IP Addresses

Lecture 76 Docker Network Drivers

Lecture 77 Module Summary

Lecture 78 Module Resources

Section 5: Building Multi-Container Applications with Docker

Lecture 79 Module Introduction

Lecture 80 Our Target App & Setup

Lecture 81 Dockerizing the MongoDB Service

Lecture 82 Dockerizing the Node App

Lecture 83 Moving the React SPA into a Container

Lecture 84 Adding Docker Networks for Efficient Cross-Container Communication

Lecture 85 Fixing MongoDB Authentication Errors (relevant for next lecture)

Lecture 86 Adding Data Persistence to MongoDB with Volumes

Lecture 87 Volumes, Bind Mounts & Polishing for the NodeJS Container

Lecture 88 Live Source Code Updates for the React Container (with Bind Mounts)

Lecture 89 Module Summary

Lecture 90 Module Resources

Section 6: Docker Compose: Elegant Multi-Container Orchestration

Lecture 91 Module Introduction

Lecture 92 Docker-Compose: What & Why?

Lecture 93 Creating a Compose File

Lecture 94 Diving into the Compose File Configuration

Lecture 95 Installing Docker Compose on Linux

Lecture 96 Docker Compose Up & Down

Lecture 97 Working with Multiple Containers

Lecture 98 Adding Another Container

Lecture 99 Building Images & Understanding Container Names

Lecture 100 Module Summary

Lecture 101 Module Resources

Section 7: Working with “Utility Containers” & Executing Commands In Containers

Lecture 102 Module Introduction & What are “Utility Containers”?

Lecture 103 Utility Containers: Why would you use them?

Lecture 104 Different Ways of Running Commands in Containers

Lecture 105 Building a First Utility Container

Lecture 106 Utilizing ENTRYPOINT

Lecture 107 Using Docker Compose

Lecture 108 Utility Containers, Permissions & Linux

Lecture 109 Module Summary

Lecture 110 Module Resources

Section 8: A More Complex Setup: A Laravel & PHP Dockerized Project

Lecture 111 Module Introduction

Lecture 112 The Target Setup

Lecture 113 Adding a Nginx (Web Server) Container

Lecture 114 Adding a PHP Container

Lecture 115 Adding a MySQL Container

Lecture 116 Adding a Composer Utility Container

Lecture 117 Creating a Laravel App via the Composer Utility Container

Lecture 118 Fixing Errors With The Next Lecture

Lecture 119 Launching Only Some Docker Compose Services

Lecture 120 Adding More Utility Containers

Lecture 121 Docker Compose with and without Dockerfiles

Lecture 122 Bind Mounts and COPY: When To Use What

Lecture 123 Module Resources

Section 9: Deploying Docker Containers

Lecture 124 Module Introduction

Lecture 125 From Development To Production

Lecture 126 Deployment Process & Providers

Lecture 127 Getting Started With An Example

Lecture 128 Bind Mounts In Production

Lecture 129 Introducing AWS & EC2

Lecture 130 Connecting to an EC2 Instance

Lecture 131 Installing Docker on a Virtual Machine

Lecture 132 Installing Docker on Linux in General

Lecture 133 Pushing our local Image to the Cloud

Lecture 134 Running & Publishing the App (on EC2)

Lecture 135 Managing & Updating the Container / Image

Lecture 136 Disadvantages of our Current Approach

Lecture 137 From Manual Deployment to Managed Services

Lecture 138 Important: AWS, Pricing and ECS

Lecture 139 Deploying with AWS ECS: A Managed Docker Container Service

Lecture 140 More on AWS

Lecture 141 Updating Managed Containers

Lecture 142 Preparing a Multi-Container App

Lecture 143 Configuring the NodeJS Backend Container

Lecture 144 Deploying a Second Container & A Load Balancer

Lecture 145 Using a Load Balancer for a Stable Domain

Lecture 146 Using EFS Volumes with ECS

Lecture 147 Our Current Architecture

Lecture 148 Databases & Containers: An Important Consideration

Lecture 149 Moving to MongoDB Atlas

Lecture 150 Using MongoDB Atlas in Production

Lecture 151 Our Updated & Target Architecture

Lecture 152 Understanding a Common Problem

Lecture 153 Creating a “build-only” Container

Lecture 154 Introducing Multi-Stage Builds

Lecture 155 Building a Multi-Stage Image

Lecture 156 Deploying a Standalone Frontend App

Lecture 157 Development vs Production: Differences

Lecture 158 Understanding Multi-Stage Build Targets

Lecture 159 Beyond AWS

Lecture 160 Module Summary

Lecture 161 Module Resources

Section 10: Docker & Containers – A Summary

Lecture 162 Module Introduction

Lecture 163 Images & Containers

Lecture 164 Key Commands

Lecture 165 Data, Volumes & Networking

Lecture 166 Docker Compose

Lecture 167 Local vs Remote

Lecture 168 Deployment

Lecture 169 Module Resources

Section 11: Getting Started with Kubernetes

Lecture 170 Module Introduction

Lecture 171 More Problems with Manual Deployment

Lecture 172 Why Kubernetes?

Lecture 173 What Is Kubernetes Exactly?

Lecture 174 Kubernetes: Architecture & Core Concepts

Lecture 175 Kubernetes will NOT manage your Infrastructure!

Lecture 176 A Closer Look at the Worker Nodes

Lecture 177 A Closer Look at the Master Node

Lecture 178 Important Terms & Concepts

Lecture 179 Module Resources

Section 12: Kubernetes in Action – Diving into the Core Concepts

Lecture 180 Module Introduction

Lecture 181 Kubernetes does NOT manage your Infrastructure

Lecture 182 Kubernetes: Required Setup & Installation Steps

Lecture 183 macOS Setup

Lecture 184 Windows Setup

Lecture 185 Understanding Kubernetes Objects (Resources)

Lecture 186 The “Deployment” Object (Resource)

Lecture 187 A First Deployment – Using the Imperative Approach

Lecture 188 kubectl: Behind The Scenes

Lecture 189 The “Service” Object (Resource)

Lecture 190 Exposing a Deployment with a Service

Lecture 191 Restarting Containers

Lecture 192 Scaling in Action

Lecture 193 Updating Deployments

Lecture 194 Deployment Rollbacks & History

Lecture 195 The Imperative vs The Declarative Approach

Lecture 196 Creating a Deployment Configuration File (Declarative Approach)

Lecture 197 Adding Pod and Container Specs

Lecture 198 Working with Labels & Selectors

Lecture 199 Creating a Service Declaratively

Lecture 200 Updating & Deleting Resources

Lecture 201 Multiple vs Single Config Files

Lecture 202 More on Labels & Selectors

Lecture 203 Liveness Probes

Lecture 204 A Closer Look at the Configuration Options

Lecture 205 Summary

Lecture 206 Module Resources

Section 13: Managing Data & Volumes with Kubernetes

Lecture 207 Module Introduction

Lecture 208 Starting Project & What We Know Already

Lecture 209 Kubernetes & Volumes – More Than Docker Volumes

Lecture 210 Kubernetes Volumes: Theory & Docker Comparison

Lecture 211 Creating a New Deployment & Service

Lecture 212 Getting Started with Kubernetes Volumes

Lecture 213 A First Volume: The “emptyDir” Type

Lecture 214 A Second Volume: The “hostPath” Type

Lecture 215 Understanding the “CSI” Volume Type

Lecture 216 From Volumes to Persistent Volumes

Lecture 217 Defining a Persistent Volume

Lecture 218 Creating a Persistent Volume Claim

Lecture 219 Using a Claim in a Pod

Lecture 220 Volumes vs Persistent Volumes

Lecture 221 Using Environment Variables

Lecture 222 Environment Variables & ConfigMaps

Lecture 223 Module Summary

Lecture 224 Module Resources

Section 14: Kubernetes Networking

Lecture 225 Module Introduction

Lecture 226 Starting Project & Our Goal

Lecture 227 Creating a First Deployment

Lecture 228 Another Look at Services

Lecture 229 Multiple Containers in One Pod

Lecture 230 Pod-internal Communication

Lecture 231 Creating Multiple Deployments

Lecture 232 Pod-to-Pod Communication with IP Addresses & Environment Variables

Lecture 233 Using DNS for Pod-to-Pod Communication

Lecture 234 Which Approach Is Best? And a Challenge!

Lecture 235 Challenge Solution

Lecture 236 Adding a Containerized Frontend

Lecture 237 Deploying the Frontend with Kubernetes

Lecture 238 Using a Reverse Proxy for the Frontend

Lecture 239 Module Summary

Lecture 240 Module Resources

Section 15: Kubernetes – Deployment (AWS EKS)

Lecture 241 Module Introduction

Lecture 242 Deployment Options & Steps

Lecture 243 AWS EKS vs AWS ECS

Lecture 244 Preparing the Starting Project

Lecture 245 A Note on AWS EKS Pricing

Lecture 246 Diving Into AWS

Lecture 247 Creating & Configuring the Kubernetes Cluster with EKS

Lecture 248 Adding Worker Nodes

Lecture 249 Applying Our Kubernetes Config

Lecture 250 Getting Started with Volumes

Lecture 251 Adding EFS as a Volume (with the CSI Volume Type)

Lecture 252 Creating a Persistent Volume for EFS

Lecture 253 Using the EFS Volume

Lecture 254 A Challenge!

Lecture 255 Challenge Solution

Lecture 256 Module Resources

Section 16: Roundup & Next Steps

Lecture 257 You Learned A Lot!

Lecture 258 Related Topics You Could Explore

Lecture 259 Next Steps!

Lecture 260 Course Roundup

Lecture 261 Bonus!

Everyone who has NOT worked with Docker or Kubernetes at all,Everyone who is struggling with understanding what exactly Docker is (and why you might want to use it),(Web) developers who want to explore modern DevOps and Docker

Course Information:

Udemy | English | 23h 40m | 9.47 GB
Created by: Academind by Maximilian Schwarzmüller

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top