Mô tả

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!

Bạn sẽ học được gì

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

Yêu cầu

  • 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

Nội dung khoá học

16 sections

Getting Started

17 lectures
Welcome to the Course
02:32
What Is Docker?
04:42
Why Docker & Containers?
05:59
Join Our Learning Community
00:25
Virtual Machines vs Docker Containers
08:55
Docker Setup - Overview
04:31
Docker Setup - macOS
03:33
Docker Setup - Windows
09:44
Docker Setup - Docker Toolbox for Older Systems
06:51
Docker Playground
00:08
An Overview of the Docker Tools
03:04
Installing & Configuring an IDE
02:07
Getting Our Hands Dirty!
09:23
Course Outline
04:14
How To Get The Most Out Of This Course
03:24
Course Resources
00:09
Course Setup
00:32

Docker Images & Containers: The Core Building Blocks

28 lectures
Module Introduction
01:16
Images & Containers: What and Why?
02:29
Using & Running External (Pre-Built) Images
08:28
Our Goal: A NodeJS App
06:40
Building our own Image with a Dockerfile
11:14
Running a Container based on our own Image
07:58
EXPOSE & A Little Utility Functionality
00:41
Images are Read-Only!
05:51
Understanding Image Layers
08:20
A First Summary
03:18
Images & Containers
7 questions
Managing Images & Containers
02:01
Stopping & Restarting Containers
04:31
Understanding Attached & Detached Containers
07:50
Attaching to an already-running Container
00:13
Entering Interactive Mode
10:44
Deleting Images & Containers
06:26
Removing Stopped Containers Automatically
03:18
A Look Behind the Scenes: Inspecting Images
04:00
Copying Files Into & From A Container
04:57
Naming & Tagging Containers and Images
09:28
Time to Practice: Images & Containers
1 question
Sharing Images - Overview
06:37
Pushing Images to DockerHub
10:44
Pulling & Using Shared Images
04:50
Managing Images & Containers
4 questions
Module Summary
05:00
Module Resources
00:08

Managing Data & Working with Volumes

25 lectures
Module Introduction
01:27
Understanding Data Categories / Different Kinds of Data
07:20
Analyzing a Real App
03:02
Building & Understanding the Demo App
08:36
Understanding the Problem
05:25
Introducing Volumes
02:57
A First, Unsuccessful Try
07:45
Named Volumes To The Rescue!
08:35
Removing Anonymous Volumes
00:33
Getting Started With Bind Mounts (Code Sharing)
10:42
Bind Mounts - Shortcuts
00:18
Combining & Merging Different Volumes
07:52
A NodeJS-specific Adjustment: Using Nodemon in a Container
07:16
Volumes & Bind Mounts: Summary
05:54
Volumes & Bind Mounts
7 questions
A Look at Read-Only Volumes
05:40
Managing Docker Volumes
07:39
Using "COPY" vs Bind Mounts
03:26
Don't COPY Everything: Using "dockerignore" Files
02:31
Adding more to the .dockerignore File
00:14
Working with Environment Variables & ".env" Files
08:47
Environment Variables & Security
00:34
Using Build Arguments (ARG)
05:09
Module Summary
05:15
Module Resources
00:05

Networking: (Cross-)Container Communication

14 lectures
Module Introduction
01:16
Case 1: Container to WWW Communication
03:49
Case 2: Container to Local Host Machine Communication
02:13
Case 3: Container to Container Communication
02:40
Analyzing the Demo App
07:50
Creating a Container & Communicating to the Web (WWW)
06:45
Making Container to Host Communication Work
04:37
Container to Container Communication: A Basic Solution
07:06
Introducing Docker Networks: Elegant Container to Container Communication
10:00
How Docker Resolves IP Addresses
02:22
Docker Container Communication & Networks
4 questions
Docker Network Drivers
00:51
Module Summary
01:26
Module Resources
00:05

Building Multi-Container Applications with Docker

12 lectures
Module Introduction
02:08
Our Target App & Setup
10:48
Dockerizing the MongoDB Service
04:26
Dockerizing the Node App
07:30
Moving the React SPA into a Container
08:26
Adding Docker Networks for Efficient Cross-Container Communication
11:50
Fixing MongoDB Authentication Errors (relevant for next lecture)
00:13
Adding Data Persistence to MongoDB with Volumes
08:16
Volumes, Bind Mounts & Polishing for the NodeJS Container
15:02
Live Source Code Updates for the React Container (with Bind Mounts)
06:50
Module Summary
04:43
Module Resources
00:05

Docker Compose: Elegant Multi-Container Orchestration

12 lectures
Module Introduction
03:08
Docker-Compose: What & Why?
04:33
Creating a Compose File
06:17
Diving into the Compose File Configuration
11:20
Installing Docker Compose on Linux
00:13
Docker Compose Up & Down
03:46
Working with Multiple Containers
14:51
Adding Another Container
05:55
Building Images & Understanding Container Names
05:25
Docker Compose
5 questions
Module Summary
02:29
Module Resources
00:05

Working with "Utility Containers" & Executing Commands In Containers

9 lectures
Module Introduction & What are "Utility Containers"?
02:39
Utility Containers: Why would you use them?
03:02
Different Ways of Running Commands in Containers
05:56
Building a First Utility Container
04:51
Utilizing ENTRYPOINT
05:27
Using Docker Compose
06:09
Utility Containers, Permissions & Linux
00:11
Module Summary
01:31
Module Resources
00:01

A More Complex Setup: A Laravel & PHP Dockerized Project

13 lectures
Module Introduction
02:29
The Target Setup
07:13
Adding a Nginx (Web Server) Container
08:08
Adding a PHP Container
10:43
Adding a MySQL Container
03:21
Adding a Composer Utility Container
03:59
Creating a Laravel App via the Composer Utility Container
03:36
Fixing Errors With The Next Lecture
00:53
Launching Only Some Docker Compose Services
11:54
Adding More Utility Containers
06:25
Docker Compose with and without Dockerfiles
04:08
Bind Mounts and COPY: When To Use What
14:20
Module Resources
00:05

Deploying Docker Containers

39 lectures
Module Introduction
03:40
From Development To Production
07:12
Deployment Process & Providers
06:26
Getting Started With An Example
04:02
Bind Mounts In Production
05:05
Introducing AWS & EC2
02:36
Connecting to an EC2 Instance
08:23
Important: Installing Docker on a Virtual Machine
00:22
Installing Docker on a Virtual Machine
01:56
Installing Docker on Linux in General
00:15
Pushing our local Image to the Cloud
05:34
Running & Publishing the App (on EC2)
10:20
Managing & Updating the Container / Image
05:31
Disadvantages of our Current Approach
04:43
From Manual Deployment to Managed Services
05:46
Important: AWS, Pricing and ECS
00:29
Deploying with AWS ECS: A Managed Docker Container Service
13:59
More on AWS
04:12
Updating Managed Containers
03:28
Preparing a Multi-Container App
10:56
Configuring the NodeJS Backend Container
10:31
Deploying a Second Container & A Load Balancer
09:12
Using a Load Balancer for a Stable Domain
05:16
Using EFS Volumes with ECS
17:53
Our Current Architecture
01:55
Databases & Containers: An Important Consideration
05:16
Moving to MongoDB Atlas
13:45
Using MongoDB Atlas in Production
07:33
Our Updated & Target Architecture
02:25
Understanding a Common Problem
05:34
Creating a "build-only" Container
04:47
Introducing Multi-Stage Builds
07:52
Building a Multi-Stage Image
06:09
Deploying a Standalone Frontend App
15:53
Development vs Production: Differences
03:51
Understanding Multi-Stage Build Targets
02:32
Beyond AWS
02:02
Module Summary
06:43
Module Resources
00:05

Docker & Containers - A Summary

8 lectures
Module Introduction
00:57
Images & Containers
03:36
Key Commands
02:14
Data, Volumes & Networking
03:13
Docker Compose
01:11
Local vs Remote
02:38
Deployment
04:27
Module Resources
00:01

Getting Started with Kubernetes

11 lectures
Module Introduction
02:16
More Problems with Manual Deployment
07:41
Why Kubernetes?
05:12
What Is Kubernetes Exactly?
06:54
Kubernetes: Architecture & Core Concepts
07:37
Kubernetes will NOT manage your Infrastructure!
03:49
A Closer Look at the Worker Nodes
04:21
A Closer Look at the Master Node
02:48
Important Terms & Concepts
03:08
Kubernetes Core Concepts
4 questions
Module Resources
00:01

Kubernetes in Action - Diving into the Core Concepts

27 lectures
Module Introduction
01:25
Kubernetes does NOT manage your Infrastructure
08:41
Kubernetes: Required Setup & Installation Steps
06:26
macOS Setup
07:21
Windows Setup
12:18
Understanding Kubernetes Objects (Resources)
09:06
The "Deployment" Object (Resource)
04:03
A First Deployment - Using the Imperative Approach
12:53
kubectl: Behind The Scenes
02:14
The "Service" Object (Resource)
02:49
Exposing a Deployment with a Service
06:10
Restarting Containers
02:38
Scaling in Action
02:42
Updating Deployments
05:53
Deployment Rollbacks & History
05:40
The Imperative vs The Declarative Approach
04:11
Creating a Deployment Configuration File (Declarative Approach)
06:24
Adding Pod and Container Specs
08:48
Working with Labels & Selectors
04:43
Creating a Service Declaratively
09:28
Updating & Deleting Resources
03:41
Multiple vs Single Config Files
03:43
More on Labels & Selectors
07:49
Liveness Probes
04:11
A Closer Look at the Configuration Options
05:26
Summary
04:26
Module Resources
00:05

Managing Data & Volumes with Kubernetes

18 lectures
Module Introduction
02:22
Starting Project & What We Know Already
04:41
Kubernetes & Volumes - More Than Docker Volumes
03:35
Kubernetes Volumes: Theory & Docker Comparison
06:04
Creating a New Deployment & Service
09:32
Getting Started with Kubernetes Volumes
03:30
A First Volume: The "emptyDir" Type
10:04
A Second Volume: The "hostPath" Type
07:34
Understanding the "CSI" Volume Type
04:07
From Volumes to Persistent Volumes
09:08
Defining a Persistent Volume
09:04
Creating a Persistent Volume Claim
08:10
Using a Claim in a Pod
06:39
Volumes vs Persistent Volumes
06:35
Using Environment Variables
04:48
Environment Variables & ConfigMaps
06:08
Module Summary
02:59
Module Resources
00:05

Kubernetes Networking

17 lectures
Module Introduction
01:21
Starting Project & Our Goal
06:09
Creating a First Deployment
06:57
Another Look at Services
09:38
Multiple Containers in One Pod
08:32
Pod-internal Communication
04:29
Creating Multiple Deployments
05:54
Pod-to-Pod Communication with IP Addresses & Environment Variables
07:27
Using DNS for Pod-to-Pod Communication
05:21
Which Approach Is Best? And a Challenge!
03:09
Important Hint: Create a tasks.txt File
00:06
Challenge Solution
10:06
Adding a Containerized Frontend
14:07
Deploying the Frontend with Kubernetes
07:52
Using a Reverse Proxy for the Frontend
13:57
Module Summary
01:52
Module Resources
00:05

Kubernetes - Deployment (AWS EKS)

16 lectures
Module Introduction
01:49
Deployment Options & Steps
05:42
AWS EKS vs AWS ECS
02:49
Preparing the Starting Project
07:40
A Note on AWS EKS Pricing
00:18
Diving Into AWS
03:05
Creating & Configuring the Kubernetes Cluster with EKS
15:44
Adding Worker Nodes
08:48
Applying Our Kubernetes Config
07:56
Getting Started with Volumes
04:59
Adding EFS as a Volume (with the CSI Volume Type)
04:33
Creating a Persistent Volume for EFS
08:23
Using the EFS Volume
08:08
A Challenge!
03:24
Challenge Solution
14:47
Module Resources
00:05

Roundup & Next Steps

5 lectures
You Learned A Lot!
03:23
Related Topics You Could Explore
07:08
Next Steps!
03:06
Course Roundup
00:55
Bonus!
00:06

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.