Container Technology is an efficient way to develop and deploy applications.
The word container was introduced from the shipping industry.
Just as cranes pick up entire container and deploy it in ships/trucks for further processing, container technology does the same thing.
Containers are lightweight OS-level virtualization that runs applications and their dependencies in resource-isolated processes and ships it out as one unit.
The components that are required to run are packed in a single image and can be reused.
Server running multiple containerized applications can run on single OS, and each container shares OS with other containers.
The main purpose is to run software reliably from one computing environment to another.
Although it is paired with microservices and cloud, it offers benefits of monolithic applications and on-premise data centers.
Container was the core feature of Linux but gained attention when Docker came into existence
Use-cases include:
- Microservices
- Batch Processing
- Machine Learning
- Hybrid Application
- Platform as a service
The cloud computing providers like AWS, Microsoft Azure, Google Cloud Platform embraces containers with support of Docker, Apache Mesos, Kubernetes, etc.
Google, YouTube, etc. have adopted it because of its simplicity, consistency, reliability, and scalability.