Container images are made up of layers, with each layer containing file system changes. Images can be tagged to distinguish versions and labeled to add metadata. Labels provide information like the image creator, description, and version references. Child images inherit labels from their parent image, but not the maintainer label. Automating builds with a Makefile allows labels to reference the current git commit and build time. Metadata helps understand what an image contains and how it was created.