Containers are a form of operating system virtualization. A single container might be used to run anything from a small microservice or software process to a larger application. A container consists of all the necessary executables, binary code, libraries, and configuration files that the applications need to be functional. Containers do not contain operating system images and this makes them be essentially a fully packaged and portable computing environment. Also, This makes it unchallenging to move containerized applications within multiple environments such as dev, test,pre-prod, and production and retain full functionality.
Advantages of Containers:
Portability: Containerized applications can be deployed to multiple/different operating systems and hardware platforms.
Lightweight: Containers require fewer system resources than traditional virtual machine environments, they do not consist of operating system images.
Efficiency: Containers give you the ability to deploy, patch, and scale applications faster.
Consistency: Containerized applications run the same way regardless of where they are deployed.