It’s a runnable instance of a container image that is sandboxed on a machine (isolated from all other processes). It’s portable and can run locally, on virtual machines or deployed to the cloud.

Runs on top of the container engine, such as Docker.

A container emulates the user space of an OS.

Kernel namespaces and cgroups features of Linux are used for this.

Provides a way to run software in a controlled and isolated environment.

All containers share the host’s OS kernel and hardware, so it’s much more difficult to achieve the level of isolation and security that a VM can provide. But because of that, there are much less overhead and container can boot up in milliseconds.