Creating and Managing Container Images

In the previous chapter, we learned what containers are and how to run, stop, remove, list, and inspect them. We extracted the logging information of some containers, ran other processes inside an already running container, and finally, we dived deep into the anatomy of containers. Whenever we ran a container, we created it using a container image. In this chapter, we will be familiarizing ourselves with these container images. We will learn in detail what they are, how to create them, and how to distribute them.

This chapter will cover the following topics:

  • What are images?
  • Creating images
  • Lift and shift: Containerizing a legacy app
  • Sharing or shipping images

After completing this chapter, you will be able to do the following:

  • Name three of the most important characteristics of a container image.
  • Create a custom image by interactively changing the container layer and committing it.
  • Author a simple Dockerfile to generate a custom image.
  • Export an existing image using docker image save and import it into another Docker host using docker image load.
  • Write a two-step Dockerfile that minimizes the size of the resulting image by only including the resulting artifacts in the final image.