Section 1 : Getting Started

Lecture 1 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 2 What Is Docker_ 00:04:42 Duration
Lecture 3 Why Docker & Containers_ 00:05:59 Duration
Lecture 4 About Proctor Testing
Lecture 5 Virtual Machines vs Docker Containers 00:08:55 Duration
Lecture 6 Docker Setup - Overview 00:04:31 Duration
Lecture 7 About Certification
Lecture 8 Docker Setup - Windows
Lecture 9 Docker Setup - Docker Toolbox for Older Systems 00:06:51 Duration
Lecture 10 Docker Playground
Lecture 11 An Overview of the Docker Tools 00:03:04 Duration
Lecture 12 Installing & Configuring an IDE 00:02:06 Duration
Lecture 13 Getting Our Hands Dirty_ 00:09:22 Duration
Lecture 14 Course Outline 00:04:14 Duration
Lecture 15 How To Get The Most Out Of This Course 00:03:24 Duration
Lecture 16 Course Resources

Section 2 : Docker Images & Containers_ The Core Building Blocks

Lecture 1 Module Introduction 00:01:16 Duration
Lecture 2 Images & Containers_ What and Why_ 00:02:29 Duration
Lecture 3 Using & Running External (Pre-Built) Images 00:08:28 Duration
Lecture 4 Our Goal_ A NodeJS App 00:06:40 Duration
Lecture 5 Building our own Image with a Dockerfile 00:11:13 Duration
Lecture 6 Running a Container based on our own Image 00:07:58 Duration
Lecture 7 EXPOSE & A Little Utility Functionality
Lecture 8 Images are Read-Only_ 00:05:51 Duration
Lecture 9 Understanding Image Layers 00:08:20 Duration
Lecture 10 A First Summary 00:03:18 Duration
Lecture 11 Managing Images & Containers
Lecture 12 Stopping & Restarting Containers 00:04:31 Duration
Lecture 13 Understanding Attached & Detached Containers 00:07:50 Duration
Lecture 14 Attaching to an already-running Container
Lecture 15 Entering Interactive Mode 00:10:44 Duration
Lecture 16 Deleting Images & Containers 00:06:26 Duration
Lecture 17 Removing Stopped Containers Automatically 00:03:18 Duration
Lecture 18 A Look Behind the Scenes_ Inspecting Images 00:04:00 Duration
Lecture 19 Copying Files Into & From A Container 00:04:57 Duration
Lecture 20 Naming & Tagging Containers and Images 00:09:27 Duration
Lecture 21 Sharing Images - Overview 00:06:37 Duration
Lecture 22 Pushing Images to DockerHub 00:10:44 Duration
Lecture 23 Pulling & Using Shared Images 00:04:50 Duration
Lecture 24 Module Summary 00:05:00 Duration
Lecture 25 Module Resources

Section 3 : Managing Data & Working with Volumes

Lecture 1 Module Introduction 00:01:27 Duration
Lecture 2 Understanding Data Categories _ Different Kinds of Data 00:07:19 Duration
Lecture 3 Analyzing a Real App 00:03:02 Duration
Lecture 4 Building & Understanding the Demo App 00:08:36 Duration
Lecture 5 Understanding the Problem 00:05:25 Duration
Lecture 6 Introducing Volumes 00:02:57 Duration
Lecture 7 A First, Unsuccessful Try 00:07:45 Duration
Lecture 8 Named Volumes To The Rescue_ 00:08:35 Duration
Lecture 9 Removing Anonymous Volumes
Lecture 10 Getting Started With Bind Mounts (Code Sharing) 00:10:41 Duration
Lecture 11 Bind Mounts - Shortcuts
Lecture 12 Combining & Merging Different Volumes 00:07:52 Duration
Lecture 13 A NodeJS-specific Adjustment_ Using Nodemon in a Container 00:07:16 Duration
Lecture 14 Volumes & Bind Mounts_ Summary 00:05:54 Duration
Lecture 15 A Look at Read-Only Volumes 00:05:40 Duration
Lecture 16 Managing Docker Volumes 00:07:39 Duration
Lecture 17 Using _COPY_ vs Bind Mounts 00:03:26 Duration
Lecture 18 Don't COPY Everything_ Using _dockerignore_ Files 00:02:31 Duration
Lecture 19 Adding more to the
Lecture 20 Working with Environment Variables & _ 00:08:47 Duration
Lecture 21 Environment Variables & Security
Lecture 22 Using Build Arguments (ARG) 00:05:09 Duration
Lecture 23 Module Summary 00:05:15 Duration
Lecture 24 Module Resources

Section 4 : Networking_ (Cross-)Container Communication

Lecture 1 Module Introduction 00:01:16 Duration
Lecture 2 Case 1_ Container to WWW Communication 00:03:49 Duration
Lecture 3 Case 2_ Container to Local Host Machine Communication 00:02:13 Duration
Lecture 4 Case 3_ Container to Container Communication 00:02:40 Duration
Lecture 5 Analyzing the Demo App 00:07:49 Duration
Lecture 6 Creating a Container & Communicating to the Web (WWW) 00:06:45 Duration
Lecture 7 Making Container to Host Communication Work 00:04:37 Duration
Lecture 8 Container to Container Communication_ A Basic Solution 00:07:06 Duration
Lecture 9 Introducing Docker Networks_ Elegant Container to Container Communication 00:10:00 Duration
Lecture 10 How Docker Resolves IP Addresses 00:02:22 Duration
Lecture 11 Docker Network Drivers
Lecture 12 Module Summary 00:01:26 Duration
Lecture 13 Module Resources

Section 5 : Building Multi-Container Applications with Docker

Lecture 1 Module Introduction 00:02:08 Duration
Lecture 2 Our Target App & Setup 00:10:48 Duration
Lecture 3 Dockerizing the MongoDB Service 00:04:26 Duration
Lecture 4 Dockerizing the Node App 00:07:30 Duration
Lecture 5 Moving the React SPA into a Container 00:08:26 Duration
Lecture 6 Adding Docker Networks for Efficient Cross-Container Communication 00:11:50 Duration
Lecture 7 Adding Data Persistence to MongoDB with Volumes 00:08:16 Duration
Lecture 8 Volumes, Bind Mounts & Polishing for the NodeJS Container 00:15:02 Duration
Lecture 9 Live Source Code Updates for the React Container (with Bind Mounts) 00:06:50 Duration
Lecture 10 Module Summary 00:04:43 Duration
Lecture 11 Module Resources

Section 6 : Docker Compose_ Elegant Multi-Container Orchestration

Lecture 1 Module Introduction 00:03:08 Duration
Lecture 2 Docker-Compose_ What & Why_ 00:04:33 Duration
Lecture 3 Creating a Compose File 00:06:16 Duration
Lecture 4 Diving into the Compose File Configuration 00:11:20 Duration
Lecture 5 Installing Docker Compose on Linux
Lecture 6 Docker Compose Up & Down 00:03:46 Duration
Lecture 7 Working with Multiple Containers 00:14:51 Duration
Lecture 8 Adding Another Container 00:05:54 Duration
Lecture 9 Building Images & Understanding Container Names 00:05:25 Duration
Lecture 10 Module Summary 00:02:29 Duration
Lecture 11 Module Resources

Section 7 : Working with _Utility Containers_ & Executing Commands In Containers

Lecture 1 Module Introduction & What are _Utility Containers__ 00:02:39 Duration
Lecture 2 Utility Containers_ Why would you use them_ 00:03:02 Duration
Lecture 3 Different Ways of Running Commands in Containers 00:05:56 Duration
Lecture 4 Building a First Utility Container 00:04:51 Duration
Lecture 5 Utilizing ENTRYPOINT 00:05:27 Duration
Lecture 6 Using Docker Compose 00:06:09 Duration
Lecture 7 About Proctor Testing
Lecture 8 Module Summary 00:01:31 Duration
Lecture 9 Module Resources

Section 8 : A More Complex Setup_ A Laravel & PHP Dockerized Project

Lecture 1 Module Introduction 00:02:29 Duration
Lecture 2 The Target Setup 00:07:13 Duration
Lecture 3 Adding a Nginx (Web Server) Container 00:08:08 Duration
Lecture 4 Adding a PHP Container 00:10:43 Duration
Lecture 5 Adding a MySQL Container 00:03:21 Duration
Lecture 6 Adding a Composer Utility Container 00:03:59 Duration
Lecture 7 Creating a Laravel App via the Composer Utility Container 00:03:35 Duration
Lecture 8 Fixing Errors With The Next Lecture
Lecture 9 Launching Only Some Docker Compose Services 00:11:54 Duration
Lecture 10 Adding More Utility Containers 00:06:24 Duration
Lecture 11 Docker Compose with and without Dockerfiles 00:04:07 Duration
Lecture 12 Bind Mounts and COPY_ When To Use What 00:14:20 Duration
Lecture 13 Module Resources

Section 9 : Deploying Docker Containers

Lecture 1 Module Introduction 00:03:40 Duration
Lecture 2 From Development To Production 00:07:12 Duration
Lecture 3 Deployment Process & Providers 00:06:25 Duration
Lecture 4 Getting Started With An Example 00:04:01 Duration
Lecture 5 Bind Mounts In Production 00:05:04 Duration
Lecture 6 Introducing AWS & EC2 00:02:36 Duration
Lecture 7 Connecting to an EC2 Instance
Lecture 8 Installing Docker on a Virtual Machine 00:01:56 Duration
Lecture 9 Installing Docker on Linux in General
Lecture 10 Pushing our local Image to the Cloud 00:05:34 Duration
Lecture 11 Running & Publishing the App (on EC2) 00:10:20 Duration
Lecture 12 Managing & Updating the Container _ Image 00:05:31 Duration
Lecture 13 Disadvantages of our Current Approach 00:04:43 Duration
Lecture 14 From Manual Deployment to Managed Services 00:05:46 Duration
Lecture 15 Important_ AWS, Pricing and ECS
Lecture 16 Deploying with AWS ECS_ A Managed Docker Container Service 00:13:59 Duration
Lecture 17 More on AWS 00:04:12 Duration
Lecture 18 Updating Managed Containers 00:03:28 Duration
Lecture 19 Preparing a Multi-Container App 00:10:56 Duration
Lecture 20 Configuring the NodeJS Backend Container 00:10:31 Duration
Lecture 21 Deploying a Second Container & A Load Balancer 00:09:12 Duration
Lecture 22 Using a Load Balancer for a Stable Domain 00:05:15 Duration
Lecture 23 Using EFS Volumes with ECS 00:17:53 Duration
Lecture 24 Our Current Architecture 00:01:55 Duration
Lecture 25 Databases & Containers_ An Important Consideration 00:05:16 Duration
Lecture 26 Moving to MongoDB Atlas 00:13:45 Duration
Lecture 27 Using MongoDB Atlas in Production 00:07:33 Duration
Lecture 28 Our Updated & Target Architecture 00:02:25 Duration
Lecture 29 Understanding a Common Problem 00:05:34 Duration
Lecture 30 Creating a _build-only_ Container 00:04:47 Duration
Lecture 31 Introducing Multi-Stage Builds 00:07:52 Duration
Lecture 32 Building a Multi-Stage Image 00:06:08 Duration
Lecture 33 Deploying a Standalone Frontend App 00:15:53 Duration
Lecture 34 Development vs Production_ Differences 00:03:50 Duration
Lecture 35 Understanding Multi-Stage Build Targets 00:02:32 Duration
Lecture 36 Beyond AWS 00:02:02 Duration
Lecture 37 Module Summary 00:06:43 Duration
Lecture 38 Module Resources

Section 10 : Docker & Containers - A Summary

Lecture 1 Module Introduction 00:00:57 Duration
Lecture 2 Images & Containers 00:03:35 Duration
Lecture 3 Key Commands 00:02:14 Duration
Lecture 4 Data, Volumes & Networking 00:03:13 Duration
Lecture 5 Docker Compose 00:01:11 Duration
Lecture 6 Local vs Remote 00:02:38 Duration
Lecture 7 Deployment 00:04:27 Duration
Lecture 8 Module Resources

Section 11 : Getting Started with Kubernetes

Lecture 1 Module Introduction 00:02:16 Duration
Lecture 2 More Problems with Manual Deployment 00:07:41 Duration
Lecture 3 Why Kubernetes_ 00:05:12 Duration
Lecture 4 What Is Kubernetes Exactly_ 00:06:54 Duration
Lecture 5 Kubernetes_ Architecture & Core Concepts 00:07:37 Duration
Lecture 6 Kubernetes will NOT manage your Infrastructure_ 00:03:49 Duration
Lecture 7 A Closer Look at the Worker Nodes 00:04:21 Duration
Lecture 8 A Closer Look at the Master Node 00:02:48 Duration
Lecture 9 Important Terms & Concepts 00:03:08 Duration
Lecture 10 Module Resources

Section 12 : Kubernetes in Action - Diving into the Core Concepts

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

Section 13 : Managing Data & Volumes with Kubernetes

Lecture 1 Module Introduction 00:02:22 Duration
Lecture 2 Starting Project & What We Know Already 00:04:41 Duration
Lecture 3 Kubernetes & Volumes - More Than Docker Volumes 00:03:35 Duration
Lecture 4 Kubernetes Volumes_ Theory & Docker Comparison 00:06:04 Duration
Lecture 5 Creating a New Deployment & Service 00:09:32 Duration
Lecture 6 Getting Started with Kubernetes Volumes 00:03:29 Duration
Lecture 7 A First Volume_ The _emptyDir_ Type 00:10:04 Duration
Lecture 8 A Second Volume_ The _hostPath_ Type 00:07:34 Duration
Lecture 9 Understanding the _CSI_ Volume Type 00:04:07 Duration
Lecture 10 From Volumes to Persistent Volumes 00:09:08 Duration
Lecture 11 Defining a Persistent Volume 00:09:04 Duration
Lecture 12 Creating a Persistent Volume Claim 00:08:10 Duration
Lecture 13 Using a Claim in a Pod 00:06:38 Duration
Lecture 14 Volumes vs Persistent Volumes 00:06:35 Duration
Lecture 15 Using Environment Variables 00:04:48 Duration
Lecture 16 Environment Variables & ConfigMaps 00:06:08 Duration
Lecture 17 Module Summary 00:02:59 Duration
Lecture 18 Module Resources

Section 14 : Kubernetes Networking

Lecture 1 Module Introduction 00:01:21 Duration
Lecture 2 Starting Project & Our Goal 00:06:09 Duration
Lecture 3 Creating a First Deployment 00:06:57 Duration
Lecture 4 Another Look at Services 00:09:38 Duration
Lecture 5 Multiple Containers in One Pod 00:08:32 Duration
Lecture 6 Pod-internal Communication 00:04:29 Duration
Lecture 7 Creating Multiple Deployments 00:05:54 Duration
Lecture 8 Pod-to-Pod Communication with IP Addresses & Environment Variables 00:07:27 Duration
Lecture 9 Using DNS for Pod-to-Pod Communication 00:05:21 Duration
Lecture 10 Which Approach Is Best_ And a Challenge_ 00:03:09 Duration
Lecture 11 Challenge Solution 00:10:06 Duration
Lecture 12 Adding a Containerized Frontend 00:14:07 Duration
Lecture 13 Deploying the Frontend with Kubernetes 00:07:52 Duration
Lecture 14 Using a Reverse Proxy for the Frontend 00:13:57 Duration
Lecture 15 Module Summary 00:01:52 Duration
Lecture 16 Module Resources

Section 15 : Kubernetes - Deployment (AWS EKS)

Lecture 1 Module Introduction 00:01:49 Duration
Lecture 2 Deployment Options & Steps 00:05:42 Duration
Lecture 3 AWS EKS vs AWS ECS 00:02:49 Duration
Lecture 4 Preparing the Starting Project
Lecture 5 A Note on AWS EKS Pricing
Lecture 6 Diving Into AWS 00:03:05 Duration
Lecture 7 Creating & Configuring the Kubernetes Cluster with EKS 00:15:44 Duration
Lecture 8 Adding Worker Nodes 00:08:48 Duration
Lecture 9 Applying Our Kubernetes Config 00:07:56 Duration
Lecture 10 Getting Started with Volumes 00:04:59 Duration
Lecture 11 Adding EFS as a Volume (with the CSI Volume Type) 00:04:33 Duration
Lecture 12 Creating a Persistent Volume for EFS 00:08:23 Duration
Lecture 13 Using the EFS Volume 00:08:08 Duration
Lecture 14 A Challenge_
Lecture 15 Challenge Solution 00:14:47 Duration
Lecture 16 Module Resources

Section 16 : Roundup & Next Steps

Lecture 1 You Learned A Lot_ 00:03:23 Duration
Lecture 2 Related Topics You Could Explore 00:07:08 Duration
Lecture 3 Next Steps_ 00:03:06 Duration