Developing Dockerized .NET and .NET Core Applications
Docker is a platform for packaging, distributing, and running applications. When you package your applications as Docker images, they all have the same shape, you can deploy, manage, secure, and upgrade them all in the same way. All Dockerized applications have the same requirements to run them: the Docker Engine running on a compatible operating system. Applications run in isolated environments, so you can host different application platforms and different platform versions on the same machine with no interference.
In the .NET world, this means you can run multiple workloads on a single Windows machine, they could be ASP.NET websites or Windows Communication Foundation (WCF) apps on .NET console applications or .NET Windows Services. You saw in the previous chapter that you can Dockerize legacy .NET applications without any code change, but Docker has some simple expectations about how applications running inside containers should behave, so they can get the full benefit of the platform.
In this chapter, you'll look at how to build applications so they can take complete advantage of the Docker platform, including the following:
- The integration points between Docker and your application
- Configuring your application with environment variables
- Monitoring applications with health checks
- Running distributed solutions with components in different containers
This will help you develop .NET and .NET Core applications that behave in the way Docker expects, so you can manage them fully with Docker.