Docker & Kubernetes: The Practical Guide [2025 Edition]

Docker & Kubernetes: The Practical Guide [2025 Edition]

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 264 lectures (23h 40m) | 9.72 GB

Learn Docker, Docker Compose, Multi-Container Projects, Deployment and all about Kubernetes from the ground up!

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 Docker
  • Detailed setup instructions for macOS and Windows
  • A deep-dive into the core concepts you need to know: Containers & images
  • Learn how to create custom images, use existing images and how to run containers based on such images
  • Get a detailed overview of the core commands you need when working with Docker
  • Learn how to work with data and how to persist data with volumes
  • Explore container networking – with the outside world and between multiple containers
  • Learn how to work with both single and multi-container projects
  • In-depth deployment instructions: Manual deployment and deployment with managed services like AWS ECS
  • Understand Kubernetes core concepts & architecture
  • Learn how to create Kubernetes resources, deployments, services and how to run your containers with Kubernetes
  • Dive deeply into working with data in Kubernetes projects – with different types of volumes
  • Kubernetes networking and DNS service discovery
  • Learn 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!

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
Table of Contents

Getting Started
1 Welcome to the Course
2 What Is Docker
3 Why Docker & Containers
4 Join Our Learning Community
5 Virtual Machines vs Docker Containers
6 Docker Setup – Overview
7 Docker Setup – macOS
8 Docker Setup – Windows
9 Docker Setup – Docker Toolbox for Older Systems
10 Docker Playground
11 An Overview of the Docker Tools
12 Installing & Configuring an IDE
13 Getting Our Hands Dirty!
14 Course Outline
15 How To Get The Most Out Of This Course
16 Course Resources
17 Course Setup

Docker Images & Containers The Core Building Blocks
18 Module Introduction
19 Images & Containers What and Why
20 Using & Running External (Pre-Built) Images
21 Our Goal A NodeJS App
22 Building our own Image with a Dockerfile
23 Running a Container based on our own Image
24 EXPOSE & A Little Utility Functionality
25 Images are Read-Only!
26 Understanding Image Layers
27 A First Summary
28 Images & Containers
29 Managing Images & Containers
30 Stopping & Restarting Containers
31 Understanding Attached & Detached Containers
32 Attaching to an already-running Container
33 Entering Interactive Mode
34 Deleting Images & Containers
35 Removing Stopped Containers Automatically
36 A Look Behind the Scenes Inspecting Images
37 Copying Files Into & From A Container
38 Naming & Tagging Containers and Images
39 Sharing Images – Overview
40 Pushing Images to DockerHub
41 Pulling & Using Shared Images
42 Managing Images & Containers
43 Module Summary
44 Module Resources

Managing Data & Working with Volumes
45 Module Introduction
46 Understanding Data Categories Different Kinds of Data
47 Analyzing a Real App
48 Building & Understanding the Demo App
49 Understanding the Problem
50 Introducing Volumes
51 A First, Unsuccessful Try
52 Named Volumes To The Rescue!
53 Removing Anonymous Volumes
54 Getting Started With Bind Mounts (Code Sharing)
55 Bind Mounts – Shortcuts
56 Combining & Merging Different Volumes
57 A NodeJS-specific Adjustment Using Nodemon in a Container
58 Volumes & Bind Mounts Summary
59 Volumes & Bind Mounts
60 A Look at Read-Only Volumes
61 Managing Docker Volumes
62 Using COPY vs Bind Mounts
63 Don’t COPY Everything Using dockerignore Files
64 Adding more to the .dockerignore File
65 Working with Environment Variables & .env Files
66 Environment Variables & Security
67 Using Build Arguments (ARG)
68 Module Summary
69 Module Resources

Networking (Cross-)Container Communication
70 Module Introduction
71 Case 1 Container to WWW Communication
72 Case 2 Container to Local Host Machine Communication
73 Case 3 Container to Container Communication
74 Analyzing the Demo App
75 Creating a Container & Communicating to the Web (WWW)
76 Making Container to Host Communication Work
77 Container to Container Communication A Basic Solution
78 Introducing Docker Networks Elegant Container to Container Communication
79 How Docker Resolves IP Addresses
80 Docker Container Communication & Networks
81 Docker Network Drivers
82 Module Summary
83 Module Resources

Building Multi-Container Applications with Docker
84 Module Introduction
85 Our Target App & Setup
86 Dockerizing the MongoDB Service
87 Dockerizing the Node App
88 Moving the React SPA into a Container
89 Adding Docker Networks for Efficient Cross-Container Communication
90 Fixing MongoDB Authentication Errors (relevant for next lecture)
91 Adding Data Persistence to MongoDB with Volumes
92 Volumes, Bind Mounts & Polishing for the NodeJS Container
93 Live Source Code Updates for the React Container (with Bind Mounts)
94 Module Summary
95 Module Resources

Docker Compose Elegant Multi-Container Orchestration
96 Module Introduction
97 Docker-Compose What & Why
98 Creating a Compose File
99 Diving into the Compose File Configuration
100 Installing Docker Compose on Linux
101 Docker Compose Up & Down
102 Working with Multiple Containers
103 Adding Another Container
104 Building Images & Understanding Container Names
105 Docker Compose
106 Module Summary
107 Module Resources

Working with Utility Containers & Executing Commands In Containers
108 Module Introduction & What are Utility Containers
109 Utility Containers Why would you use them
110 Different Ways of Running Commands in Containers
111 Building a First Utility Container
112 Utilizing ENTRYPOINT
113 Using Docker Compose
114 Utility Containers, Permissions & Linux
115 Module Summary
116 Module Resources

A More Complex Setup A Laravel & PHP Dockerized Project
117 Module Introduction
118 The Target Setup
119 Adding a Nginx (Web Server) Container
120 Adding a PHP Container
121 Adding a MySQL Container
122 Adding a Composer Utility Container
123 Creating a Laravel App via the Composer Utility Container
124 Fixing Errors With The Next Lecture
125 Launching Only Some Docker Compose Services
126 Adding More Utility Containers
127 Docker Compose with and without Dockerfiles
128 Bind Mounts and COPY When To Use What
129 Module Resources

Deploying Docker Containers
130 Module Introduction
131 From Development To Production
132 Deployment Process & Providers
133 Getting Started With An Example
134 Bind Mounts In Production
135 Introducing AWS & EC2
136 Connecting to an EC2 Instance
137 Important Installing Docker on a Virtual Machine
138 Installing Docker on a Virtual Machine
139 Installing Docker on Linux in General
140 Pushing our local Image to the Cloud
141 Running & Publishing the App (on EC2)
142 Managing & Updating the Container Image
143 Disadvantages of our Current Approach
144 From Manual Deployment to Managed Services
145 Important AWS, Pricing and ECS
146 Deploying with AWS ECS A Managed Docker Container Service
147 More on AWS
148 Updating Managed Containers
149 Preparing a Multi-Container App
150 Configuring the NodeJS Backend Container
151 Deploying a Second Container & A Load Balancer
152 Using a Load Balancer for a Stable Domain
153 Using EFS Volumes with ECS
154 Our Current Architecture
155 Databases & Containers An Important Consideration
156 Moving to MongoDB Atlas
157 Using MongoDB Atlas in Production
158 Our Updated & Target Architecture
159 Understanding a Common Problem
160 Creating a build-only Container
161 Introducing Multi-Stage Builds
162 Building a Multi-Stage Image
163 Deploying a Standalone Frontend App
164 Development vs Production Differences
165 Understanding Multi-Stage Build Targets
166 Beyond AWS
167 Module Summary
168 Module Resources

Docker & Containers – A Summary
169 Module Introduction
170 Images & Containers
171 Key Commands
172 Data, Volumes & Networking
173 Docker Compose
174 Local vs Remote
175 Deployment
176 Module Resources

Getting Started with Kubernetes
177 Module Introduction
178 More Problems with Manual Deployment
179 Why Kubernetes
180 What Is Kubernetes Exactly
181 Kubernetes Architecture & Core Concepts
182 Kubernetes will NOT manage your Infrastructure!
183 A Closer Look at the Worker Nodes
184 A Closer Look at the Master Node
185 Important Terms & Concepts
186 Kubernetes Core Concepts
187 Module Resources

Kubernetes in Action – Diving into the Core Concepts
188 Module Introduction
189 Kubernetes does NOT manage your Infrastructure
190 Kubernetes Required Setup & Installation Steps
191 macOS Setup
192 Windows Setup
193 Understanding Kubernetes Objects (Resources)
194 The Deployment Object (Resource)
195 A First Deployment – Using the Imperative Approach
196 kubectl Behind The Scenes
197 The Service Object (Resource)
198 Exposing a Deployment with a Service
199 Restarting Containers
200 Scaling in Action
201 Updating Deployments
202 Deployment Rollbacks & History
203 The Imperative vs The Declarative Approach
204 Creating a Deployment Configuration File (Declarative Approach)
205 Adding Pod and Container Specs
206 Working with Labels & Selectors
207 Creating a Service Declaratively
208 Updating & Deleting Resources
209 Multiple vs Single Config Files
210 More on Labels & Selectors
211 Liveness Probes
212 A Closer Look at the Configuration Options
213 Summary
214 Module Resources

Managing Data & Volumes with Kubernetes
215 Module Introduction
216 Starting Project & What We Know Already
217 Kubernetes & Volumes – More Than Docker Volumes
218 Kubernetes Volumes Theory & Docker Comparison
219 Creating a New Deployment & Service
220 Getting Started with Kubernetes Volumes
221 A First Volume The emptyDir Type
222 A Second Volume The hostPath Type
223 Understanding the CSI Volume Type
224 From Volumes to Persistent Volumes
225 Defining a Persistent Volume
226 Creating a Persistent Volume Claim
227 Using a Claim in a Pod
228 Volumes vs Persistent Volumes
229 Using Environment Variables
230 Environment Variables & ConfigMaps
231 Module Summary
232 Module Resources

Kubernetes Networking
233 Module Introduction
234 Starting Project & Our Goal
235 Creating a First Deployment
236 Another Look at Services
237 Multiple Containers in One Pod
238 Pod-internal Communication
239 Creating Multiple Deployments
240 Pod-to-Pod Communication with IP Addresses & Environment Variables
241 Using DNS for Pod-to-Pod Communication
242 Which Approach Is Best And a Challenge!
243 Important Hint Create a tasks.txt File
244 Challenge Solution
245 Adding a Containerized Frontend
246 Deploying the Frontend with Kubernetes
247 Using a Reverse Proxy for the Frontend
248 Module Summary
249 Module Resources

Kubernetes – Deployment (AWS EKS)
250 Module Introduction
251 Deployment Options & Steps
252 AWS EKS vs AWS ECS
253 Preparing the Starting Project
254 A Note on AWS EKS Pricing
255 Diving Into AWS
256 Creating & Configuring the Kubernetes Cluster with EKS
257 Adding Worker Nodes
258 Applying Our Kubernetes Config
259 Getting Started with Volumes
260 Adding EFS as a Volume (with the CSI Volume Type)
261 Creating a Persistent Volume for EFS
262 Using the EFS Volume
263 A Challenge!
264 Challenge Solution
265 Module Resources

Roundup & Next Steps
266 You Learned A Lot!
267 Related Topics You Could Explore
268 Next Steps!
269 Course Roundup
270 Bonus!

Homepage