
Learn to run and package applications with Docker on Windows and Linux, mastering Docker files, Docker images, Docker containers, and the Docker command line.
Learn to work with Windows containers using the Docker CLI, run both interactive and background containers, inspect logs, and execute commands inside SQL Server or Windows image containers.
Discover how to run Linux containers on Docker alongside Windows containers. Learn Linux container basics, image differences, and common commands using Alpine and Ubuntu, plus running SQL Server on Linux.
Learn to build and run .NET apps in containers by creating Dockerfiles, packaging images, publishing ports, and ensuring logs across Windows and Linux.
Learn how to tag and push Docker images to registries like Docker Hub, manage versions with tags, and share Windows and Linux container images across repositories.
Explore .NET base images on Linux and Windows, including runtime, SDK, and ASP.NET variants. Learn tag semantics and how to choose the smallest base image for your apps.
Recap how Dockerfile, images, and registries package and run net apps across Windows and Linux, including containers and the build, ship, and run workflow.
Explore building and running .NET framework and .NET core apps in containers, packaging into Docker images with multi-stage Dockerfiles, using SDK images and cross-container networking on Windows and Linux.
Package pre-built ASP.NET applications into a Docker image using a simple Dockerfile and an MSI installer, then explore limitations and Docker networking with SQL Server containers.
Learn to compile and package .NET framework apps with a multi-stage dockerfile, using a builder stage and a runtime image, optimize caching, and produce lean final images.
Explore how docker containers enable lightweight, isolated multi-container apps, with docker networking, image-level config overrides, and networks that let web apps talk to databases by container name.
Compile and package .NET Core apps with multi-stage Dockerfiles using the SDK and runtime images, building a lightweight reference data API with Dapper, DI, and environment-based config.
Discover how docker standardizes dotnet apps by configuring dotnet core with appsettings.json and optional json sources plus environment variables, and compare net framework xml configuration and logging.
Explore best practices for packaging .NET apps in Docker with multi-stage builds, using the SDK for building and a slim runtime image, and deploying across Windows and Linux.
Design a distributed architecture using Docker Compose to split a monolithic app into independent containers, implement a reverse proxy entry point, and adopt asynchronous, event-driven messaging.
Explore how Docker Compose models multi-container applications with a YAML specification and a separate CLI to build, run, and manage services, networks, and volumes.
Modernize a .NET framework monolith by containerizing components, switching to an API reference data loader, and hosting a separate home page with dependency injection and configuration.
Learn to manage HTTP traffic for containers with a reverse proxy, using traffic to build routing rules from Docker labels and path prefix.
Switch to asynchronous messaging with a message queue to decouple the web app from SQL Server, enabling scalable, event-driven processing via a message handler and Nat in Docker.
Leverage an event-driven architecture with a new message handler to power a self-service analytics portal using Elasticsearch and Kibana, all deployed in Docker across Linux and Windows.
Discover how to run cross-platform distributed .NET apps using Windows and Linux containers with the same source and Docker files, switching modes on Docker desktop and coordinating via Docker Compose.
Explore how Docker and Docker Compose model distributed applications, decompose monoliths into containerized services, and use a reverse proxy with Nats or RabbitMQ to decouple components.
Prepare .NET apps for production in Docker by configuring environment, robust logging, health and readiness checks, and exposing metrics across Linux and Windows containers.
Explore robust logging for Windows containers using log monitor and service monitor to relay event logs, bubble up SQL Server and ASP.NET web failures to the container.
Explore Docker health checks and readiness checks for .NET apps on Linux and Windows, including interval probes, dependency readiness, and self-healing with container platforms.
Learn to record application metrics with Prometheus in .NET components, including counters for processed and failed events, runtime metrics, and dashboards across Elasticsearch and SQL Server interactions.
Explore persisting data in containers with volumes, separating writable layer from image to upgrade without data loss, using anonymous and named volumes, and bind mounts managed by Docker Compose.
Configure SQL Server containers to persist data by attaching existing database files or creating a new database in a defined data path, using volumes or bind mounts for host persistence.
Adopt production-ready patterns for dockerized .NET apps, including logging, health and readiness checks, metrics with Prometheus, and stateful storage strategies with volumes.
Deploy dotnet apps at scale with a container platform and orchestration across Linux and Windows servers. Model compute, networking, and storage in YAML, enable centralized logs and metrics.
Learn to create a multi-node Docker swarm cluster across Linux and Windows, initialize the swarm, join workers, deploy scalable services, and leverage ingress load balancing.
Learn to model and deploy app stacks with Docker Swarm, using overlay networks, configs and secrets, and run multi-stack .NET apps across Linux and Windows nodes for scalable, managed orchestration.
Explore how Docker Swarm enables high availability and scale for .NET apps on Linux and Windows. Learn about health checks, rolling updates, sticky sessions, and multi-container fault tolerance in production.
Centralize container logs across Linux and Windows with Docker's Fluentd logging driver, Elasticsearch, and Kibana to collect, search, and visualize production logs.
Monitor dockerized apps using Prometheus and Grafana by collecting container metrics and visualizing them in dashboards. Configure swarm targets, relabeling, and metrics endpoints to track health and performance.
Learn production readiness for .NET apps on Docker Swarm, including health checks, replicas, rolling updates, and centralized logging and monitoring with Fluentd, Elasticsearch, Kibana, Prometheus, and Grafana.
Docker is a platform for running applications in lightweight units of compute called containers. You can take pretty much any app and run it in a container, and this course will teach you how to do that - with 100% focus on .NET applications and real-world skills.
You'll learn how to run .NET Framework applications in Windows containers, and .NET Core applications in Windows and Linux containers. Then you'll see how to run new and old components in a distributed architecture with Docker Compose. Finally you'll learn what you need to do to get your Dockerized .NET apps ready for production, and how it looks to run apps at scale in Docker Swarm.
The learning journey in this course is honed from many years of teaching - you don't need to have any existing Docker knowledge, you'll start with the basics and add more knowledge with every lesson. And the content is honed from many years of consulting projects, helping organizations to move .NET apps to Docker and run them successfully in production. That can be the first step to modernizing monolithic applications, or for migrating on-premises applications to the cloud.
Your instructor, Elton Stoneman, is a Docker Captain and a Microsoft MVP - and he's been running containers in production since 2015.