copy semantic in current implementation, all data(include manifest and image layer) in destination will be overwrited by source without to see if it exist.
IMO we should implement sync semantic between source and destination image repository, if layer in destination is exist, it won't be downloaded repeatedly. This will be more efficient.