A package of self-sustaining application and operating system environment to be executed simply and securetly in a variety of computing environment. 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.