1. A method for creating a virtual machine image, comprising: storing a first image manifest for a first virtual machine image, the first image manifest including a mapping from file names of the first virtual machine image to content descriptors; storing a second image manifest for a second virtual machine image, the second image manifest including a mapping from file names of the second virtual machine image to content descriptors; creating a first overlay mapping by: placing a file name and its content descriptor both from the second image manifest in the first overlay mapping; and placing a file name and its content descriptor both from the first image manifest in the first overlay mapping if the file name and its content descriptor are not mapped in the second image manifest; and constructing a third virtual machine image having an image manifest whose mapping is the first overlay mapping.