In this chapter, we have discussed in detail what container images are and how we can build and ship them. As we have seen, there are three different ways that an image can be created—either manually, automatically, or by importing a tarball into the system. We also learned some of the best practices commonly used when building custom images.
In the next chapter, we're going to introduce Docker volumes that can be used to persist the state of a container, and we will also introduce some helpful system commands that can be used to inspect the Docker host more deeply, work with events generated by the Docker daemon, and clean up unused resources.