Skip to main content

Docker and Kubernetes - The Complete Developers Guide

12h 40m 38s
English
Free

Course description

In this course we will take you from a Docker and Kubernetes novice to job ready engineer. This course is loaded with diagrams and practical examples so that you can truly understand and utilize Docker and Kubernetes in great depth. We will be containerize five projects, each one getting more and more complex. We need end this course by containerizing a multi component microservice application with Kubernetes and eventually deploying it to AWS.

Read more about the course

By the end of this course, you should have multiple practical example to show off your knowledge!

Here are a list of thing you will learn in this course:

  • What are Docker containers and why would we want to use it

  • How to build docker images and run docker containers

  • How to connect to a container from our host machine

  • How to persistent data inside of a database container

  • How to build a multi-component application with docker-compose

  • Understand the benefits and powers of Kubernetes

  • Understand the many different Kubernetes objects

  • Understand how a Kubernetes Cluster is structured

  • How to containerize a multi-component application with Kubernetes

  • How to push and pull images from image repositories

  • How to deploy a containerized application to AWS ECS and AWS EKS

  • How to build a production ready CI/CD Pipeline

I really hope you enjoy this course and learn a ton from it!

Watch Online

0:00 0:00
#Lesson TitleDuration
1What We'll Learn03:26
2Some Stuff We Need to Download03:12
3Installing Docker Desktop03:15
4A Little Analogy05:49
5Relating Our Analogy to Docker07:28
6Building a Small Node App06:17
7Running Our Node App Locally05:48
8Creating a Dockerfile03:39
9We are Really Building an Image05:29
10Understanding the Rest of the Dockerfile08:21
11Building an Image and Running a Container06:55
12Port Mapping04:18
13Rebuilding Our Image06:15
14Syncing Our Code with Bind Mounts04:38
15Using Anonymous Volumes07:03
16It's Not Docker's Fault!09:19
17Ignoring Files with Docker Ignore06:18
18Docker Layering and Caching07:34
19The Challenge05:17
20The Solution10:13
21An Intro to Control Plane05:57
22Viewing Our GVC03:35
23Pushing Our Image to an Image Repository07:40
24Running a Workload02:53
25Killing Our Deployment00:47
26Application Overview02:43
27How to Handle Multiple Component Applications04:58
28Going Through the Starter Code03:48
29Pulling Images From an Image Repository06:43
30Building our Node Image and Running the Container04:20
31Connecting Our Containers Through Localhost09:51
32Utilizing the Container's IP Address05:20
33Introducing Docker Networks06:00
34Dockerizing Our React App02:59
35Running into a Little Issue04:40
36Client Side Rendering is the Problem05:30
37Optimizing Our Workflow with Volumes17:07
38An Intro to Docker Compose03:54
39A Little About YAML Syntax04:32
40Writing the MongoDB Configuration04:44
41Setting Environment Variables05:13
42docker-compose up and docker-compose down03:30
43Setting Up the Backend Container10:40
44Testing the Integration01:43
45Setting Up the Frontend Container05:44
46Our Deployment Workflow03:31
47Writing the Dockerfile06:22
48Running the Container Locally03:02
49Create an Image Repository and Downloading the AWS CLI11:23
50IAM for Access Management10:28
51Pushing Our Image to the Registry04:03
52Creating an ECS Cluster07:13
53Creating a Task Definition04:15
54Running the Task with a ECS Service03:11
55Configuring the Inbound Rules of Our Security Group04:16
56Redeploying Changes in the Codebase07:56
57The Issues with a Manual Process02:10
58The Solution is Automation01:21
59Understanding a Production Grade Workflow08:06
60Pushing Our Code to GitHub02:45
61Creating a Pull Request05:11
62Building the Integration Pipeline10:05
63Setting up Branch Protection Rules (Not Really)02:17
64Setting Up AWS Credentials in GitHub Actions11:21
65Building and Pushing Our Image to ECR11:49
66My Bad Everyone02:38
67Downloading and Updating the task-definition.json File10:11
68Deploying the Task Definition07:41
69Fixing Our Deployment Issue04:24
70The Major Issue with This Solution04:56
71Blue/Green Deployments is the Optimal Solution04:21
72Tearing Down the ECS Cluster01:59
73Multi Container Deployment02:08
74The Need for NGINX04:06
75Multi Stage Dockerfile07:20
76The Issues With Using a Database Container05:50
77Setting Up Our Codebase for Deployment04:27
78Pushing Our Image to AWS ECR04:24
79Defining a Multi Container Task Defintion06:46
80Adding Environment Variables05:07
81Updating the Task Definition04:30
82Our New (Much Larger) Project08:15
83Can We Just Do the Same Thing?04:28
84Kubernetes to the Rescue02:57
85Communication via Kubectl03:57
86Installing Kubernetes01:33
87Writing Our First Manifest File04:50
88Containers Run in Pods05:35
89Selecting Kubernetes Objects With the apiVersion02:17
90Understanding the Rest of the Manifest File09:04
91Running Our Pod02:54
92Writing a Service Manifest File04:19
93How the NodePort Service Works09:31
94Creating the Node and Mongo Pods09:16
95ClusterIP Service for Internal Communication09:06
96What Happens if the Pod Crashes?04:37
97Deployments to the Rescue07:50
98Dissecting the Manifest File04:21
99Creating the Frontend Store ClusterIP04:15
100Creating the Deployment and ClusterIP For the Products API05:39
101Creating the MongoDB Deployment03:51
102Running All the Manifest Files06:43
103Deployment for the Notifications API08:26
104Deployment and ClusterIP for RabbitMQ05:14
105Checking if Everything Works02:20
106Adding Environment Variables to Our Code04:46
107Defining Environment Variables07:35
108ConfigMaps for Commonly Used Environment Variables08:32
109Hide Environment Variables With Secrets11:24
110The Need for an Ingress Service06:33
111Writing Some Ingress Configuration05:50
112Manually Testing Out Our App11:52
113Understanding the Ingress Configuration08:09
114Our Data is Not Persisting!02:38
115A Reminder on Volumes02:51
116Kubernetes Volumes Are Not the Solution02:53
117Persistent Volumes, for well... Persistent Data01:06
118Persistent Volume Claims02:16
119Writing the Config and Applying the PVC09:19
120The Deployment Process07:46
121Creating a EKS Cluster with Eksctl05:19
122Understanding Kubectl Context06:03
123Creating the Twilio Secret in Prod04:18
124Adding an AWS Ingress Load Balancer02:40
125Defining the Host Domain05:36
126Applying the Rest of Our Configuration04:30
127Testing Our Deployed App!02:50
128Updating Our Production Cluster07:00
129The Steps Our CD Pipeline Needs to Take04:19
130Creating a GitHub Repository07:12
131Starting Our Deployment Workflow11:39
132Building and Pushing Our Image to DockerHub08:05
133Completing Our Pipeline By Updating Our Cluster07:03
134It Worked!01:15
135Deleting Our Cluster01:03

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Docker and Kubernetes: The Complete Guide

Docker and Kubernetes: The Complete Guide

Sources: udemy, Stephen Grider
This is the ultimate course to learn how to deploy any web application you can possibly dream up. Docker and Kubernetes are the newest tech in the Dev Ops world, and have drama...
21 hours 32 minutes 42 seconds
DevOps Project - 2022: CI/CD with Jenkins Ansible Kubernetes

DevOps Project - 2022: CI/CD with Jenkins Ansible Kubernetes

Sources: udemy
If you know various DevOps tools like git, Jenkins, Maven, Ansible, Docker, and Kubernetes and are not sure how collaboratively does it work? Or you would like
6 hours 8 minutes 11 seconds
Containers Under the Hood

Containers Under the Hood

Sources: udemy
Take your knowledge in Containers and Linux to the next level. You don't need to be a Containers or Linux pro. We will start from the basics. How does this course differ from ot...
11 hours 25 minutes 14 seconds
The complete guide to running Java in Docker and Kubernetes

The complete guide to running Java in Docker and Kubernetes

Sources: udemy
If you need to learn how to run, tune, and maintain JVM applications that run in Docker and/or Kubernetes then this is the course for you. This course is very different from oth...
4 hours 39 minutes 16 seconds