What is container?
An image is a lightweight, stand-alone, executable package that includes everything you need to run specific software. It can include code, libraries, environment variables and config files.
A container is running instance of an image. It exists in memory and runs in isolated (from host) environment. Container can access host files and port if it allowed.
Containers run applications natively on kernel. They have better performance than virtual machines because VMs access resources through a hypervisor. Containers can get native access, each one running in a discrete process, taking no more memory than any other executable.
See comparison between VMs and containers below