Docker on Windows
上QQ阅读APP看书,第一时间看更新

Docker images

A Docker image is a complete application package. It contains one application and all of its dependencies: the language runtime, the application host, and the underlying operating system. Logically the image is a single file, and it's a portable unit – you can share your application by pushing your image to a Docker registry. Anyone who has access can pull the image themselves and run your application in a container; it will behave in exactly the same way for them as it does for you.

Here's a concrete example. An ASP.NET WebForms app is going to run on Internet Information Services (IIS) in Windows Server. To package the application in Docker, you build an image that is based on Windows Server Core, add IIS, then add ASP.NET, copy your application, and configure it as a website in IIS. You describe all these steps in a simple script called a Dockerfile, and you can use PowerShell or batch files for each step you need to perform.

You build the image by running docker image build. The input is the Dockerfile and any resources that need to be packaged into the image (like the web application content). The output is a Docker image. In this case, the image will have a logical size of about 5 GB, but 4 GB of this will be the Windows Server Core image you're using as a base, and the image can be shared as the base across many other images. (I will cover image layers and caching more in Chapter 4, Sharing Images with Docker Registries.)

A Docker image is like a snapshot of the filesystem for one version of your application. Images are static, and you distribute them using an image registry.