Linux containers allow multiple applications to run in isolation on a single Linux host using process-level virtualization through kernel features like namespaces and cgroups. Containers use fewer resources than virtual machines since they share the same Linux kernel and are lighter weight. Docker is a popular tool for automating the creation, deployment and management of containers, allowing containers to be easily shared and migrated across servers.