Containerization Explained: A Beginner's Guide to Containers
What is a container?
A container is a software package that enables us to run any application in an isolated environment, separate from the host computer. This means the container remains unaware of the host computer's activities. Each container operates independently as a unit, without impacting other containers or the host. It is possible to create multiple isolated environments and run applications without affecting the host system.
Containers are lightweight, portable software packages, unlike most PC games. These packages include everything necessary to run a specific application, such as the source code, backend, frontend, database, runtime, system tools, libraries, and dependencies.
*runtime: software component that allows us to start and end a container that is to execute a container and manage a container
\system tools: These are system software that help us maintain the system, such as file manager, disk utility, backup, and recovery. Each container will only have the necessary system tools required to run the application.*
Similar to the previously used software called VM: Virtual machines would also create a subsystem (a copy of the system) that would run applications independently, but there was a problem, each VM machine required an independent operating system which created confusion regarding licenses and also used huge amount of resources
Containers resolved this issue by utilizing the same kernel as the underlying host operating system, which increased resource efficiency and minimized duplication. In simpler terms, they do not require a separate operating system to function independently.
Do these containers utilize physical hardware?
Yes, containers utilize physical hardware resources such as CPU, memory, and disk space. These resources are divided into smaller parts or slices, and each container is allocated a portion. Although the containers share resources, they operate as if they have exclusive access to them, even though they are virtualized. This isolation helps prevent any impact on other containers.
However, the amount of resources allocated depends on the container's requirements, host system constraints, and various other factors.
Who uses containers?
Containers are primarily used by developers and deployers, rather than end users. They facilitate the production and deployment of applications or services by accelerating the process and reducing the time it takes for these applications or services to reach end users. Containers are an integral part of DevOps learning, through which I discovered.
How do you use containers?
How do you use containers?
You can utilize containers by employing containerization platforms, such as Docker, which will be discussed in an upcoming blog post.
Thank you
Subscribe to my newsletter
Read articles from Ganesh Gowda directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by