Docker and Kubernetes The Complete Developers Guide

Learn All About Containers, Docker, Docker Compose, Kubernetes and How to Deploy an App to AWS With a CI/CD Pipeline
Docker and Kubernetes The Complete Developers Guide
File Size :
4.28 GB
Total length :
12h 39m



Laith Harb


Last update

Last updated 7/2022



Docker and Kubernetes The Complete Developers Guide

What you’ll learn

Containerize a multi component application
Build a deployment CI/CD pipeline to AWS
Understand the differences between the many Kubernetes objects
Identity when best to utilize Docker or Kubernetes

Docker and Kubernetes The Complete Developers Guide


Familiarity with any programming language


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 will end this course by containerizing a multi component microservice application with Kubernetes and eventually deploying it to AWS. 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 itHow to build docker images and run docker containersHow to connect to a container from our host machineHow to persistent data inside of a database container How to build a multi-component application with docker-composeUnderstand the benefits and powers of KubernetesUnderstand the many different Kubernetes objectsUnderstand how a Kubernetes Cluster is structuredHow to containerize a multi-component application with Kubernetes How to push and pull images from image repositoriesHow to deploy a containerized application to AWS ECS and AWS EKSHow to build a production ready CI/CD PipelineI really hope you enjoy this course and learn a ton from it!


Section 1: Introduction

Lecture 1 What We’ll Learn

Lecture 2 Some Stuff We Need to Download

Lecture 3 Installing Docker Desktop

Lecture 4 Docker Desktop for Windows User

Section 2: What is Docker

Lecture 5 A Little Analogy

Lecture 6 Relating Our Analogy to Docker

Section 3: Dockerfiles, Containers and Images

Lecture 7 Building a Small Node App

Lecture 8 Running Our Node App Locally

Lecture 9 Creating a Dockerfile

Lecture 10 We are Really Building an Image

Lecture 11 Understanding the Rest of the Dockerfile

Lecture 12 Building an Image and Running a Container

Lecture 13 Port Mapping

Lecture 14 Rebuilding Our Image

Lecture 15 Syncing Our Code with Bind Mounts

Lecture 16 Using Anonymous Volumes

Lecture 17 It’s Not Docker’s Fault!

Lecture 18 Ignoring Files with Docker Ignore

Lecture 19 Docker Layering and Caching

Section 4: Optional Challenge – Dockerizing an App

Lecture 20 The Challenge

Lecture 21 The Solution

Section 5: Deploying a Containerized Application

Lecture 22 An Intro to Control Plane

Lecture 23 Viewing Our GVC

Lecture 24 Pushing Our Image to an Image Repository

Lecture 25 Running a Workload

Lecture 26 Killing Our Deployment

Section 6: Multi Containers and Network Communications

Lecture 27 Application Overview

Lecture 28 How to Handle Multiple Component Applications

Lecture 29 Going Through the Starter Code

Lecture 30 Pulling Images From an Image Repository

Lecture 31 Building our Node Image and Running the Container

Lecture 32 Connecting Our Containers Through Localhost

Lecture 33 Utilizing the Container’s IP Address

Lecture 34 Introducing Docker Networks

Lecture 35 Dockerizing Our React App

Lecture 36 Running into a Little Issue

Lecture 37 Client Side Rendering is the Problem

Lecture 38 Optimizing Our Workflow with Volumes

Section 7: Docker Compose for Multi Container Apps

Lecture 39 An Intro to Docker Compose

Lecture 40 A Little About YAML Syntax

Lecture 41 Writing the MongoDB Configuration

Lecture 42 Setting Environment Variables

Lecture 43 docker-compose up and docker-compose down

Lecture 44 Setting Up the Backend Container

Lecture 45 Testing the Integration

Lecture 46 Setting Up the Frontend Container

Section 8: Deploying to AWS with ECS

Lecture 47 Our Deployment Workflow

Lecture 48 Writing the Dockerfile

Lecture 49 Running the Container Locally

Lecture 50 Create an Image Repository and Downloading the AWS CLI

Lecture 51 IAM for Access Management

Lecture 52 Pushing Our Image to the Registry

Lecture 53 Creating an ECS Cluster

Lecture 54 Creating a Task Definition

Lecture 55 Running the Task with a ECS Service

Lecture 56 Configuring the Inbound Rules of Our Security Group

Section 9: Automating Our Workflows with a CI/CD Pipeline

Lecture 57 Redeploying Changes in the Codebase

Lecture 58 The Issues with a Manual Process

Lecture 59 The Solution is Automation

Lecture 60 Understanding a Production Grade Workflow

Lecture 61 Pushing Our Code to GitHub

Lecture 62 Creating a Pull Request

Lecture 63 Building the Integration Pipeline

Lecture 64 Setting up Branch Protection Rules (Not Really)

Lecture 65 Setting Up AWS Credentials in GitHub Actions

Lecture 66 Building and Pushing Our Image to ECR

Lecture 67 My Bad Everyone

Lecture 68 Downloading and Updating the task-definition.json File

Lecture 69 Deploying the Task Definition

Lecture 70 Fixing Our Deployment Issue

Lecture 71 The Major Issue with This Solution

Lecture 72 Blue/Green Deployments is the Optimal Solution

Lecture 73 Tearing Down the ECS Cluster

Section 10: Multi Container Deployment to AWS ECS

Lecture 74 Multi Container Deployment

Lecture 75 The Need for NGINX

Lecture 76 Multi Stage Dockerfile

Lecture 77 The Issues With Using a Database Container

Lecture 78 Setting Up Our Codebase for Deployment

Lecture 79 Pushing Our Image to AWS ECR

Lecture 80 Defining a Multi Container Task Defintion

Lecture 81 Adding Environment Variables

Lecture 82 Updating the Task Definition

Section 11: Time for Kubernetes

Lecture 83 Our New (Much Larger) Project

Lecture 84 Can We Just Do the Same Thing?

Lecture 85 Kubernetes to the Rescue

Lecture 86 Communication via Kubectl

Lecture 87 Installing Kubernetes

Section 12: Understanding Pods

Lecture 88 Writing Our First Manifest File

Lecture 89 Containers Run in Pods

Lecture 90 Selecting Kubernetes Objects With the apiVersion

Lecture 91 Understanding the Rest of the Manifest File

Lecture 92 Running Our Pod

Section 13: Kubernetes Services for Communication

Lecture 93 Writing a Service Manifest File

Lecture 94 How the NodePort Service Works

Lecture 95 Creating the Node and Mongo Pods

Lecture 96 ClusterIP Service for Internal Communication

Section 14: Deployments to Manage Our Pods

Lecture 97 What Happens if the Pod Crashes?

Lecture 98 Deployments to the Rescue

Lecture 99 Dissecting the Manifest File

Lecture 100 Creating the Frontend Store ClusterIP

Lecture 101 Creating the Deployment and ClusterIP For the Products API

Lecture 102 Creating the MongoDB Deployment

Lecture 103 Running All the Manifest Files

Lecture 104 Deployment for the Notifications API

Lecture 105 Deployment and ClusterIP for RabbitMQ

Lecture 106 Checking if Everything Works

Section 15: Environment Variables, ConfigMaps and Secrets

Lecture 107 Adding Environment Variables to Our Code

Lecture 108 Defining Environment Variables

Lecture 109 ConfigMaps for Commonly Used Environment Variables

Lecture 110 Hide Environment Variables With Secrets

Section 16: Ingress Service to Network Into the Cluster

Lecture 111 The Need for an Ingress Service

Lecture 112 Writing Some Ingress Configuration

Lecture 113 Some Product Data

Lecture 114 Manually Testing Out Our App

Lecture 115 Understanding the Ingress Configuration

Section 17: Kubernetes Volumes, Persistent Volumes & Persistent Volume Claims

Lecture 116 Our Data is Not Persisting!

Lecture 117 A Reminder on Volumes

Lecture 118 Kubernetes Volumes Are Not the Solution

Lecture 119 Persistent Volumes, for well… Persistent Data

Lecture 120 Persistent Volume Claims

Lecture 121 Writing the Config and Applying the PVC

Section 18: Deploying to Our App to AWS EKS

Lecture 122 The Deployment Process

Lecture 123 Creating a EKS Cluster with Eksctl

Lecture 124 Understanding Kubectl Context

Lecture 125 Creating the Twilio Secret in Prod

Lecture 126 Adding an AWS Ingress Load Balancer

Lecture 127 Defining the Host Domain

Lecture 128 Applying the Rest of Our Configuration

Lecture 129 Testing Our Deployed App!

Section 19: Building a CD Pipeline for Our EKS Cluster

Lecture 130 Updating Our Production Cluster

Lecture 131 The Steps Our CD Pipeline Needs to Take

Lecture 132 Creating a GitHub Repository

Lecture 133 Starting Our Deployment Workflow

Lecture 134 Building and Pushing Our Image to DockerHub

Lecture 135 Completing Our Pipeline By Updating Our Cluster

Lecture 136 It Worked!

Lecture 137 Deleting Our Cluster

Developers or devops engineers that want to learn more about containerization

Course Information:

Udemy | English | 12h 39m | 4.28 GB
Created by: Laith Harb

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

New Courses

Scroll to Top