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