A Docker container holds an application, its libraries and its settings. The application behaves the same on a developer’s laptop, a test server and production — fewer “works on my machine” problems.
A container is lighter than a virtual machine: it shares the host’s operating system kernel, so it starts quickly and uses fewer resources. Many isolated containers can run on one server.
A website, a mail service and a database each in their own container; a new version goes live by starting a new container.