Docker is a computer program that performs operating-system-level virtualization, also known as "containerization". It was first released in 2013 and is developed by Docker, Inc. Docker is used to run software packages called "containers".
Virtual Machines are built over hyper visors which can be type 1 or type 2. Virtual machines are technically complete systems with full operating system and resources assigned to them. All Virtual machines have their own kernel and dedicated resources (CPU power, RAM etc.). Containers are like processes which run over LXC or under Docker. Container don’t have their own kernel so they share kernel of the host operating system. They are lighter than virtual machines and allocated dynamic resources (which increase or decrease depending on usage). Containers are ideal in NFV (Network Functions Virtualization) environment.
LXC is a Linux utility which is used to create Containers. Once LXC is installed in your Linux distribution, you should be able to create, delete, and manage containers.