Containers, such as Docker, communicate to each other through a shared kernel. Guest virtual machines communicate to each other through the hypervisor or host operating system. Containers enjoy faster communication as staying within a shared kernel allows for more rapid communication than leaving a virtual machine and going out to a hypervisor (or host operating system) to communicate with another virtual machine. Containers allow for sequestration of processes and fewer operating systems licenses compared to having a comparable solution with virtual machines. Virtual machines can separate processes but require an operating system license for every virtual machine.