Chapter 7. Packaging software in images

 

This chapter covers

  • Manual image construction and practices
  • Images from a packaging perspective
  • Working with flat images
  • Image versioning best practices

The goal of this chapter is to help you understand the concerns of image design, learn the tools for building images, and discover advanced image patterns. You will accomplish these things by working through a thorough real-world example. Before getting started, you should have a firm grasp on the concepts in part 1 of this book.

You can create a Docker image by either modifying an existing image inside a container or defining and executing a build script called a Dockerfile. This chapter focuses on the process of manually changing an image, the fundamental mechanics of image manipulation, and the artifacts that are produced. Dockerfiles and build automation are covered in chapter 8.

7.1. Building Docker images from a container

It’s easy to get started building images if you’re already familiar with using containers. Remember, a union filesystem (UFS) mount provides a container’s filesystem. Any changes that you make to the filesystem inside a container will be written as new layers owned by the container that created them.

Before you work with real software, the next section details the typical workflow with a “Hello, World” example.

7.1.1. Packaging “Hello, World”

7.2. Going deep on Docker images and layers

7.3. Exporting and importing flat filesystems

7.4. Versioning best practices

Summary

sitemap