Packaging and Running Applications as Docker Containers
Docker reduces the logical view of your infrastructure to three core components: hosts, containers, and images. Hosts are servers that run containers, and each container is an isolated instance of an application. Containers are created from images, which are packaged applications. A Docker container image is conceptually very simple: it's a single unit that contains a complete, self-contained application. The image format is very efficient, and the integration between the image and the container runtime is very smart, so mastering images is your first step to using Docker effectively.
You've already seen some images in Chapter 1, Getting Started with Docker on Windows, by running some basic containers to check your Docker installation was working correctly, but I didn't closely examine the image or how Docker used it. In this chapter, you'll get a thorough understanding of Docker images, learning how they're structured, understanding how Docker uses them, and looking at how to package your own applications as Docker images.
The first thing to understand is the difference between an image and a container, which you can see very clearly by running different types of container from the same image.
In this chapter, you'll learn more about the basics of Docker, including:
- Running containers from images
- Building images from Dockerfiles
- Packaging your own applications as Docker images
- Working with data in images and containers
- Packaging legacy ASP.NET web apps as Docker images