We need to select an Operating System (OS) to get a specific Virtual Machine (VM). VM provides full OS to an application for running in a virtualized environment.
A Container uses APIs of an Operating System (OS) to provide runtime environment to an application.
A Container is very lightweight in comparison with a VM.
VM provides higher level of security compared to a Container.
A Container just provides the APIs that are required by the application.