Containers are a form of virtualization used in HPC for packaging applications to facilitate portability to any hardware or infrastructure. They differ from VMs because they require an underlying OS; they create an isolated boundary at the application level rather than the server level. They solve the problem of allowing a software to run reliably in a data center, vm, and the cloud – containers make it easy to move entire applications to the cloud without having to rewrite the code because of packaging, and allow developers to build platforms without having to manage infrastructure. ex. You have a MySQL container, and that’s all it does, provide a virtual instance of that application.