Finished Code and Diagrams 
 
Installing Docker on macOS 
 
Installing Docker with WSL on Windows 10/11 
 
Installing Docker on Linux 
 
But Really...What's a Container? 
 
How's Docker Running on Your Computer? 
 
Overriding Default Commands 
 
Listing Running Containers 
 
Restarting Stopped Containers 
 
Removing Stopped Containers 
 
Executing Commands in Running Containers 
 
The Purpose of the IT Flag 
 
Getting a Command Prompt in a Container 
 
Introducing Docker Compose 
 
Networking with Docker Compose 
 
Stopping Docker Compose Containers 
 
Container Maintenance with Compose 
 
Automatic Container Restarts 
 
Container Status with Docker Compose 
 
More on Project Generation 
 
Creating the Dev Dockerfile 
 
WSL and Windows Users Must Read Before Next Lecture 
 
Shorthand with Docker Compose 
 
Overriding Dockerfile Selection 
 
Docker Compose for Running Tests 
 
Implementing Multi-Step Builds 
 
Important Info About Travis and Account Registration 
 
Travis YML File Configuration 
 
A Touch More Travis Setup 
 
Elastic Beanstalk Setup and Configuration 
 
More on Elastic Beanstalk 
 
Travis Config for Deployment 
 
Required Update for IAM User and Keys 
 
Exposing Ports Through the Dockerfile 
 
Redeploy on Pull Request Merge 
 
AWS Configuration Cheat Sheet 
 
Finished Project Code with Updates Applied 
 
Expected Output for Latest Create React App Versions 
 
Dockerizing a React App - Again! 
 
Dockerizing Generic Node Apps 
 
Postgres Database Required Fixes and Updates 
 
Adding Postgres as a Service 
 
Environment Variables with Docker Compose 
 
Required Worker Environment Variables 
 
The Worker and Client Services 
 
Building a Custom Nginx Image 
 
Starting Up Docker Compose 
 
Nginx connect() failed - Connection refused while connecting to upstream 
 
Troubleshooting Startup Bugs 
 
WebSocket connection to 'ws://localhost:3000/ws' failed 
 
Opening Websocket Connections 
 
Production Multi-Container Deployments 
 
Nginx fix for React Router 
 
Altering Nginx's Listen Port 
 
Travis Configuration Setup 
 
Fix for Failing Travis Builds 
 
Github and Travis CI Setup 
 
Pushing Images to Docker Hub 
 
Successful Image Building 
 
Multi-Container Definition Files 
 
Finding Docs on Container Definitions 
 
Adding Container Definitions to DockerRun 
 
More Container Definitions 
 
Creating the Elastic Beanstalk Environment 
 
AWS Configuration Cheat Sheet - Updated for new UI 
 
Managed Data Service Providers 
 
Overview of AWS VPC's and Security Groups 
 
ElastiCache Redis Creation 
 
Creating a Custom Security Group 
 
Applying Security Groups to Resources 
 
Setting Environment Variables 
 
Container Memory Allocations 
 
Cleaning Up AWS Resources 
 
AWS Configuration Cheat Sheet 
 
Finished Project Code with Updates Applied 
 
The Why's and What's of Kubernetes 
 
Kubernetes in Development and Production 
 
Docker Desktop's Kubernetes Setup and Installation - macOS 
 
Docker Desktop's Kubernetes Setup and Installation - Windows 
 
Updated Minikube Install and Setup Info - macOS 
 
Minikube Setup on Windows 
 
Mapping Existing Knowledge 
 
Quick Note to Prevent an Error 
 
Adding Configuration Files 
 
Object Types and API Versions 
 
Running Containers in Pods 
 
Service Config Files in Depth 
 
Connecting to Running Containers 
 
The Entire Deployment Flow 
 
Imperative vs Declarative Deployments 
 
Updating Existing Objects 
 
Declarative Updates in Action 
 
Limitations in Config Updates 
 
Running Containers with Deployments 
 
Quick Note to Prevent an Error 
 
Deployment Configuration Files 
 
Walking Through the Deployment Config 
 
Scaling and Changing Deployments 
 
Updating Deployment Images 
 
Rebuilding the Client Image 
 
Triggering Deployment Updates 
 
Imperatively Updating a Deployment's Image 
 
Reminder for Docker Desktop's Kubernetes Users 
 
Multiple Docker Installations 
 
Why Mess with Docker in the Node? 
 
Recreating the Deployment 
 
NodePort vs ClusterIP Services 
 
Applying Multiple Files with Kubectl 
 
Express API Deployment Config 
 
Cluster IP for the Express API 
 
Combining Config Into Single Files 
 
Reapplying a Batch of Config Files 
 
Creating and Applying Redis Config 
 
Important Note about Expected Postgres Error 
 
Last Set of Boring Config! 
 
The Need for Volumes with Databases 
 
Volumes vs Persistent Volumes 
 
Persistent Volumes vs Persistent Volume Claims 
 
Persistent Volume Access Modes 
 
Where Does Kubernetes Allocate Persistent Volumes? 
 
Designating a PVC in a Pod Template 
 
Defining Environment Variables 
 
Adding Environment Variables to Config 
 
Creating an Encoded Secret 
 
Postgres Environment Variable Fix 
 
Passing Secrets as Environment Variables 
 
Environment Variables as Strings 
 
A Quick Note on Ingresses 
 
Behind the Scenes of Ingress 
 
More Behind the Scenes of Ingress 
 
Optional Reading on Ingress Nginx 
 
Docker Driver  and Ingress - IMPORTANT 
 
Important - DO NOT SKIP - Ingress Nginx Installation Info 
 
Setting up Ingress Locally with Minikube 
 
Ingress v1 API Update + "this.state.seenIndexes.map..." + 404 errors 
 
Creating the Ingress Configuration 
 
Docker Desktop's Kubernetes Dashboard 
 
Google Cloud vs AWS for Kubernetes 
 
Linking the Github Repo to Travis 
 
Free Google Cloud Credits 
 
Creating a Google Cloud Project 
 
Linking a Billing Account 
 
Updated GKE creation steps for new Google Cloud UI 
 
Creating a Cluster with Google Cloud 
 
Kubernetes Dashboard on Google Cloud 
 
Travis Deployment Overview 
 
Installing the Google Cloud SDK 
 
Updated Service Account steps for new GCP UI 
 
Generating a Service Account 
 
Running Travis CLI in a Container 
 
Travis Login Issues "iv undefined" or "repository not known" 
 
Encrypting a Service Account File 
 
More Google Cloud CLI Config 
 
Fix For Failing Travis Builds 
 
Running Tests with Travis 
 
Custom Deployment Providers 
 
Unique Tags for Built Images 
 
Updating the Deployment Script 
 
Configuring the GCloud CLI on Cloud Console 
 
Creating a Secret on Google Cloud 
 
Important - Updated Ingress Installation with Helm 
 
The Result of Ingress-Nginx 
 
A Workflow for Changing in Prod 
 
Merging a PR for Deployment 
 
Completed Code For Google Cloud Deployment 
 
Required Updates for Cert Manager Install 
 
How to Wire Up Cert Manager 
 
Required Update for Issuer 
 
Required Update for the Certificate 
 
Verifying the Certificate 
 
Required Update for the HTTPS Ingress 
 
Local Environment Cleanup