Containers are a unit of the Docker application packaging solution. A Container takes all the dependencies that an application needs to run such as: the program code, any runtime modules it calls, system tools, system libraries, and file systems. They are not tied to any particular platform and can be moved to any system that implements the Docker Engine either on public cloud providers like Microsoft Azure, Amazon Web Services, and Google Cloud Platform, or in house on private server infrastructure. Or any combination of these.