Containers are units of software that bundles application code, dependancies, a runtime, etc. We use containers through tools like Docker so that way our application code runs deterministically when hosted. These are nice because they are much more lightweight than a virtual machine (no hypervisor or OS per app).