
Master Docker and Kubernetes for .NET and Angular developers, building microservices with containers and volumes and implementing end-to-end CI/CD pipelines using GitHub Actions on Docker Hub and AWS.
Master the GitHub strategy for this docker and kubernetes course by following the nine sections, with readme driven commands, GitHub actions, ECR, EKS deployments, and a clear code push workflow.
Docker packages an application and its dependencies into a Docker image, a portable blueprint enabling build once and run everywhere for consistent deployment across environments.
Docker packages applications with runtime, OS, and dependencies into a single container image, enabling build once and run everywhere, ensuring identical behavior from development through staging to production.
Docker engine coordinates containers and runs images, interacting via the command line interface and rest api, while container runtime manages containers on the host os to deliver fast, portable deployments.
Understand how docker images become containers through registries and repositories, with builds and pushes to central hubs enabling versioned sharing and deployment across environments.
Configure docker desktop resource allocation in the dashboard to optimize performance by allocating CPUs, memory, disk space, and swap, and enable kubernetes for single or multi-node setups.
Learn essential docker commands for building images, managing containers, debugging, pruning resources, and using shortcuts to speed up development with images, containers, logs, and networks.
Explore the Docker command line interface for development, learning commands to run and stop containers, map ports, view logs, inspect container details, and clean up unused resources to save space.
Use Docker command line interface to run containers from images, using Nginx as a fast reverse proxy and static file server on port 8080 to serve a starting page.
Interact with a running container using docker exec -it and bash to inspect its file system and verify artifacts like index.html in nginx's html directory.
Master Docker container management by listing and inspecting images, cleaning up nginx images with force removal, stopping and deleting containers, and reviewing logs, terminal access, and dashboard metrics.
Learn to clean up docker resources by using docker system prune to remove stopped containers, unused images, and networks, reclaiming space and keeping containers and build cache healthy.
Explore how a simple text file powers a Dockerfile to package application code into a Docker image, enabling containerized isolation across Windows and Linux.
Learn how the Docker ignore file excludes unnecessary files from the build context, speeding builds and producing lighter images while preventing accidental copying of secrets, like Git ignore for Docker.
Kick off a dotnet core application from scratch, create a basic dockerfile with CRUD attributes for a business case, and implement a multi-stage build to optimize production builds.
Create and containerize the ShopSphere API project as an ASP.NET Core web API using a Linux Dockerfile. Enable container support and package the solution for production with the Dockerfile.
Launch and debug a dotnet app locally in a docker container, handle http and https port redirects, and verify the weather forecast in the ASP.NET Core template.
Learn to build a docker image with docker build, tag it, and specify the Dockerfile location with -f, while understanding multi-stage builds and caching for faster subsequent builds.
Run the container in detached mode with port 8080 binding and name it API from the softsphere image, then access http://localhost:8080 and review logs for debugging.
Run the Docker command with an environment variable to enable development mode, see Swagger UI on port 8081, understand Docker run, Docker Compose, and environment-driven config.
Containerize an Angular app using a Dockerfile and nginx, then connect the frontend to a backend API to fetch product details and serve data from the container.
Create a new Angular project using ng new in a client folder, confirming Angular CLI version 21, and review the resulting directory structure and assets.
Explore the Angular app structure—from index.html and app.ts to bootstrapping and app root—and learn to containerize the project by packaging assets into a deliverable container, starting with ng serve.
Set up a lightweight nginx web server to serve static Angular assets, configure root and index.html, and route assets via nginx.conf for Docker deployment.
Create a multi-stage dockerfile that builds an angular app with node alpine, installs dependencies via npm ci, and serves the production build on port 80 with nginx.
Add a docker ignore file to exclude assets, dotfiles, and API secrets from the docker build, reducing build size and preventing leakage, then build the container.
Diagnose a docker build failure during copy due to linux case sensitivity; fix the software client casing, rebuild with cache, and run the image.
Build an enterprise Angular frontend for a product catalog, featuring product card, form, and list components, wired to a .NET backend and prepared for container packaging.
Connect components with docker compose, attach a persistent database using volumes, and manage networking and environment variables for dev and prod environments.
Discover migrating a .NET and Angular app from in-memory data to MongoDB, with config changes, conditional registration, async repositories, and data seeding using the MongoDB driver.
Run MongoDB in a Docker container using the 7.0 image, expose port 27017, pull from Docker Hub, and verify API connectivity and data seeding.
Build and tag a new docker image (v2) for MongoDB, run the container, and diagnose a connection refused timeout by inspecting real-time container logs.
Create a shared docker network and attach both the API and MongoDB containers, enabling inter-container communication via environment variables and container names.
Use docker compose to manage multi-container apps: run up with -d, optionally build images, observe containers with docker ps, and gracefully shut down with docker compose down.
Tag and push product catalog angular client images to Docker Hub, configure repositories, and leverage the existing Mongo 7.0 db image instead of pushing a custom database image.
Learn to run and manage containers locally by pulling images from Docker Hub, using docker compose to stop and start services, and understanding container dependencies and remote versus local images.
Sign up for an AWS account, install the AWS CLI on Windows or Mac, verify the CLI version, and configure the console to start cloud provisioning alongside Azure or GCP.
Create an IAM user and attach container registry access policies, then generate and securely store access keys. Learn to download the credentials CSV and configure AWS locally for development.
Configure the AWS CLI with your access key ID, secret access key, and the us-east-1 region. Create and authenticate to ECR repositories for SoftSphere API and SoftSphere client, and tag and push images using the docker login workflow.
Tag API and client Docker images, push to ECR, verify with sha-256, and update Docker Compose to pull these images for deployment.
Run your compose setup with an AWS ECR image, swapping api and client images, and manage pushes and pulls between local, Docker Hub, and private ECR registries.
Learn to grant GitHub actions access to Amazon ECR by adding permissions, using inline or customer-managed policies, or a dedicated push user, while enforcing least privilege.
Configure GitHub repository secrets in the settings, adding aws access key, aws secret access key, and aws region; then create cicd.yml (ecr.yml) to enable ci/cd workflows.
Configure a ci/cd yaml workflow for dockerized apps, using GitHub actions to build and push API and client images to AWS ECR, with branch triggers and commit SHA tagging.
Learn how to implement and troubleshoot a GitHub Actions based CI/CD pipeline for dockerized apps, fix context and Nginx conf errors, and verify image pushes to ECR.
Learn to create an AWS EKS cluster using EKS Kuttle, configure a node group in the us east 1 region, and grant admin access, while troubleshooting authorization and deployment latency.
Merge your local kube context with the AWS EKS cluster to talk to your cloud environment. Verify two healthy nodes and running pods, and understand namespaces and pods in Kubernetes.
Create the ShopSphere namespace with kubectl to group all API and angular components. Verify the namespace shows no deployments yet, then proceed to deploy using the deployment model.
Create and configure Kubernetes deployment and service YAML files for api and client, run two replicas, pull images from ECR, and expose via a load balancer in the software namespace.
Resolve the crashback loop by provisioning MongoDB, wiring the API to it, and making the origin configuration configurable in Kubernetes deployments, then validate with a demo.
Automate the CICD flow to deploy to Amazon EKS with GitHub Actions, building and pushing API and client images to ECR, and deploying Mongo and software API with dependencies.
Automate the CI/CD pipeline to build and push images to ECR, then deploy API and client services to EKS, using Kubernetes configs and kube-config updates.
Docker & Kubernetes for .NET & Angular Developers
Build, Ship, and Scale Real Applications
Stop Guessing What Happens After You Write Code
Most developers are comfortable writing code.
But very few truly understand what happens after that code leaves their machine.
Why does it fail in another environment?
How do multiple services run together reliably?
How do teams deploy systems without breaking everything?
How do applications scale and recover automatically?
At some point, every developer realizes:
Writing code is only one part of building software.
Running it correctly is the real challenge.
The Skill Gap That Holds Developers Back
You might already be working on:
Monolith applications
Modular monolith systems
Microservices architectures
But regardless of architecture, the same challenges exist:
Environment inconsistencies
Deployment complexity
Scaling limitations
Lack of visibility into runtime behavior
This is where modern systems rely on two fundamental layers:
Docker — defines how your application runs
Kubernetes — defines how your system behaves at scale
Without understanding these, you are only solving half the problem.
What Makes This Course Different
This is not a collection of isolated concepts.
This course is designed as a complete journey, where everything connects:
You will not just learn Docker commands.
You will not just learn Kubernetes theory.
You will build a system and take it all the way to production-style deployment.
What You Will Build
A complete full-stack application:
Angular Frontend
.NET API
MongoDB Database
And you will take it through the entire lifecycle:
Local development
Containerization using Docker
Multi-container setup using Docker Compose
CI/CD pipeline integration
Deployment to Kubernetes
Scaling and troubleshooting
This is how real-world systems are built.
What You Will Learn
Docker — From Basics to Production
Containerize .NET and Angular applications
Write optimized multi-stage Dockerfiles
Run databases and caching systems in containers
Manage configuration using environment variables
Debug container issues effectively
Docker Compose — Run Full Systems Locally
Run frontend, backend, database, and cache together
Understand service-to-service communication
Replicate production-like environments on your machine
Simplify multi-service development
CI/CD — Automate Everything
Build and test applications automatically
Create Docker images in pipelines
Push images to a registry
Implement versioning and deployment flow
Kubernetes — Run Applications at Scale
Understand Pods, Deployments, and Services
Deploy your full-stack application
Expose applications using Services and Ingress
Scale applications using replicas
Understand self-healing systems
Troubleshoot real-world issues
Who This Course Is For
Developers
If you want to move beyond writing code and understand how applications actually run, this course will fill that gap.
Senior Developers
If you are designing systems but want deeper clarity on deployment, scaling, and runtime behavior, this course connects those layers.
Full Stack Developers
If you want to own the complete journey from development to deployment, this course is essential.
Why This Is a Must-Learn Skill
Modern development has changed.
Applications are expected to be containerized
Systems are designed to scale dynamically
Deployment pipelines are automated
Infrastructure is treated as part of the system
Developers who do not understand this layer:
Depend on others to deploy and debug systems
Developers who do:
Build better systems
Debug faster
Deliver with confidence
Move toward architectural roles
The Outcome
By the end of this course, you will be able to:
Design containerized applications
Run full systems locally with confidence
Build production-ready Docker images
Deploy applications on Kubernetes
Understand how modern distributed systems actually work
Final Thought
This course is not about tools.
It is about understanding how modern software systems are built, deployed, and scaled.
If you want to move from writing code to building real-world systems, this course will get you there.