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 unique 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 unique content descriptors; creating a first overlay mapping by: placing a first file name and its unique content descriptor both from the second image manifest in the first overlay mapping; and placing a second file name and its unique content descriptor both from the first image manifest in the first overlay mapping if the second file name and its unique 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.