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

React and Django: A Practical Guide with Docker

React and Django: A Practical Guide with Docker

Sources: udemy
Learn how to create an Admin App using React and Django Rest Framework. Django 3.1, React Typescript, Redux, Docker, Authentication and Authorisation, Upload Im
6 hours 50 minutes 20 seconds
Devops Fundamentals - CI/CD with AWS +Docker+Ansible+Jenkins

Devops Fundamentals - CI/CD with AWS +Docker+Ansible+Jenkins

Sources: udemy
Lets get into Devops World from Scratch with real time Hands On Projects to build Solutions for CI/CD through Jenkins with deploying Docker Containerized apps
8 hours 46 minutes 37 seconds
DevOps Deployment Automation with Terraform, AWS and Docker

DevOps Deployment Automation with Terraform, AWS and Docker

Sources: udemy
Welcome to the advanced course on how to set up a deployment automation that’s capable of handling millions of users! In this course you will learn some of the most in-demand sk...
10 hours 59 minutes 9 seconds
Microservices with NodeJS, React, Typescript and Kubernetes

Microservices with NodeJS, React, Typescript and Kubernetes

Sources: udemy
In building large scale applications intended for growth, microservices architecture is the go-to solution. One issue for Javascript and NodeJS learners is the
97 hours 19 minutes 16 seconds