Getting Started with Docker on Windows
Docker is an application platform. It's a new way of running applications in isolated, lightweight units called containers. Containers are a very efficient way of running apps – much more efficient than virtual machines (VMs) or bare-metal servers. Containers start in seconds, and they don't add any overhead to the memory and compute requirements of an app. Docker is completely agnostic to the type of apps it can run. You can run a brand new .NET Core app in one container and a 10-year old ASP.NET 2.0 WebForms app in another container on the same server.
Containers are isolated units, but they can integrate with other components. Your WebForms container can access a REST API hosted in your .NET Core container. Your .NET Core container can access a SQL Server database running in a container, or a SQL Server instance running on a separate machine. You can even set up a cluster with a mixture of Linux and Windows machines all running Docker, and have Windows containers transparently communicate with Linux containers.
Companies big and small are moving to Docker to take advantage of this flexibility and efficiency. Case studies from Docker, Inc. – the company behind the Docker platform – show that you can reduce your hardware requirements by 50% by moving to Docker and reduce time to release by 90% while still maintaining your applications' high availability. This significant reduction applies equally to on-premises data centers and to the cloud.
Efficiency isn't the only gain. When you package your application to run in Docker, you get portability. You can run your app in a Docker container on your laptop and it will behave in exactly the same way on a server in your data center and on a VM in any cloud. This means your deployment process is simple and risk-free, because you're deploying the exact same artifacts that you've tested, and you're also free to choose between hardware vendors and cloud providers.
The other big motivator is security. Containers add secure isolation between applications, so you can be confident that if one application is compromised, the attacker can't move on to compromise other apps on the same host. There are wider security benefits to the platform too. Docker can scan the contents of packaged applications and alert you to security vulnerabilities in your application stack. You can also digitally sign container images and configure Docker to run containers only from image authors that you trust.
Docker is built from open source components, and is shipped as Docker Community Edition (Docker CE) and Docker Enterprise. Docker CE is free to use and has monthly releases. Docker Enterprise is a paid subscription; it comes with extended features and support, and has quarterly releases. Docker CE and Docker Enterprise are available on Windows, and both versions use the same underlying platform, so you can run your apps in containers on Docker CE and Docker Enterprise in the same way.
This chapter gets you up-and-running with Docker containers. It covers:
- Docker and Windows containers
- Understanding the key Docker concepts
- Running Docker on Windows
- Learning about Docker with this book