The Concept Of Containerization With Docker
Posted By : Mohd Adnan | 30-Apr-2018
Image Credits: docker.com
What is docker?
Docker is a
Why docker?
The power of Docker is to create isolation between applications and infrastructure through its portable format and easy to use tooling.
Docker has the potential to reduce the size of development by providing a minimised version of the operating system via containers.
With containers, it becomes easier for teams(development, QA, Operations) among different units to work effortlessly across applications.
As Docker containers are lightweight and highly scalable, Containers has the flexibility of deploying anywhere, on any physical and virtual machines and even on the cloud.
Docker Image: In Docker, everything is based on Images.
Docker file: The Dockerfile is primarily the build scripts that has instructions to build the image.
What is a container?
A container is an App: Containerization is an approach to run applications independently and isolated from one another.
Instead of virtualising the hardware to run multiple operating systems, containers virtualise the operating system to run multiple applications. This indicates that more container can be run on the same hardware than Virtual machines as you have only one copy of the OS running and you do not need to allocate memory and CPU cores for each instance of your app/containers. It works exactly as any other app, where if an app/container needs the CPU or Memory, it allocates them and then frees up the memory when the task is performed and no more needed, allowing other apps to use the same limited and shared resources later.
Why containerize apps?
Problem
Running two or more Microservices in isolation on same or different hosts in a cost-effective way.
Possible Solutions
There are two approaches that can handle this problem -
- Run each Microservices inside a virtual machine. Example: running Ubuntu VM in VirtualBox.
- Run each Microservices inside an application container. Example: running an app in Docker container.?
What is the advantage of using Docker in organisations?
Dev or Ops: Docker is exposed to an environment in one of two paths. Developers targetting for a way to develop rapidly and locally test their applications, and operations looking to run more workload on less hardware which would be possible with virtual machines.
Devops: One of the ideal targets is to leverage Docker immediately from the Continuous Integration/Continous Deployment deployment tool, compiling the application and immediately building an image that is deployed to development, CI, stage, prod, etc. Containers reduce the time to move the application from the code check-in until it's available for testing, making developers more efficient.
When designed and built properly, the same image can be used for development, testing and CI tools for deployment in production.
Scalability: Containers are outlined for keeping horizontal scalability in mind, where stateless apps under massive load are needed, containers are highly efficient to scale out due to their smaller image size and reduced overhead. This is the basis why containers
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
Mohd Adnan
Adnan, an experienced Backend Developer, boasts a robust expertise spanning multiple technologies, prominently Java. He possesses an extensive grasp of cutting-edge technologies and boasts hands-on proficiency in Core Java, Spring Boot, Hibernate, Apache Kafka messaging queue, Redis, as well as relational databases such as MySQL and PostgreSQL. Adnan consistently delivers invaluable contributions to a variety of client projects, including Vision360 (UK) - Konfer, Bitsclan, Yogamu, Bill Barry DevOps support, enhedu.com, Noorisys, One Infinity- DevOps Setup, and more. He exhibits exceptional analytical skills alongside a creative mindset. Moreover, he possesses a fervent passion for reading books and exploring novel technologies and innovations.