1. A system for associating a virtual machine (VM) with a computing resource, the system comprising: a memory for storing a placement rule indicating one of the following: that a first virtual machine (VM) is to be co-located with a second VM during execution of the first and second VMs, and that the first VM is to be separated from the second VM during execution of the first and second VMs, wherein the first VM is associated with a first computing resource container; and a processor coupled to the memory and programmed to: when the first VM is to be co-located with the second VM, associate the second VM with the first computing resource container and provide the placement rule to the first computing resource container; when the first VM is to be separated from the second VM and a second computing resource container is available, associate the second VM with a second computing resource container; and when the first VM is to be separated from the second VM and no second computing resource container is available, associate the second VM with the first computing resource container and provide the placement rule to the first computing resource container.