A method for sharing files among different virtual machine images includes
steps of a) creating a first virtual image including one or more files;
b) determining whether there exists a second virtual image that is
similar to the first virtual image; c) comparing the one or more files of
the first and second virtual images to determine a set of common files;
d) creating a common file collection with the set of common files; f)
creating a second version of the first virtual image with files in the
first virtual image that are not in the common file collection; g)
creating a second version of the second virtual image with files in the
second virtual image that are not in the common file collection; h)
receiving a request for modification of the file within one of the
virtual images; and i) determining whether the file to be modified is in
the set of common files.