DOCKER and its Architecture

Abhay desai
3 min readApr 1, 2024

Why do you need it?

In this article, we shall be going through a brief introduction to why we need Docker and its Architecture But first, let’s define the problem statement and see how Docker solves it

THE PROBLEM STATEMENT:

Docker is essential for complex applications with multiple technologies

If we use React.js for frontend, Node.js together with Express.js for the backend and MongoDB for the database. This is a challenge to manage these technologies’ dependencies and ensure they are compatible across them especially when deploying them in different environments that have other configurations.

1. Dependency Management: React.js and Express.js both require different version of Node JS. It can be difficult to deal with such variations manually without causing problems.

2. Environment Consistency: Your computer may not work the same way as the server where you will deploy your app. This makes it hard to know if your app will run similarly in both places.

3. Deployment Complexity: Each environment might require its own parameters and dependencies hence being sensitive while trying to deploy your app at a different location.

4. Isolation: Running several apps on one machine might affect their functionality.

With Docker, it’s possible to form discrete containers for each aspect of your application, which guarantees that every component functions on its own and in isolation environment with its special requirements and settings. This eases:

1. Dependency Management: In other words, Docker makes it possible to describe accurately what each part of your application needs in order to be up and running.

2. Environment Consistency: These containers behave exactly the same way no matter where they are placed; hence your application should work accordingly.

3. Deployment Simplification: You can take everything your app requires, put it inside one box and then shift that box around without destroying anything- just because of Docker.

How Docker has been Positioned.?

Docker taking care of everything from top

Containers are lightweight, isolated environments that share the host system’s kernel and run as isolated processes. Containers utilize operating system-level virtualization to package applications along with their dependencies and configurations into a single, portable unit.

Docker Architecture:

Docker is an open-source platform that enables the creation, deployment, and management of containers. It provides a set of tools and APIs to build, package, and distribute applications as lightweight, portable containers.

Here are some key aspects of Docker:

Containerization: Docker utilizes containerization technology to create and run containers. A container is a standalone executable unit that includes everything needed to run an application, such as code, runtime, libraries, and dependencies.

Docker Engine: The Docker Engine is the core component of Docker that runs and manages containers. It provides an environment to build, run, and manage containers, including features like container orchestration, resource management, networking, and storage.

Dockerfile: A Dockerfile is a text-based script that defines the steps to build a Docker image. It specifies the base image, required dependencies, configuration settings, and other instructions necessary to create a container.

Docker Hub: Docker Hub is a cloud-based registry that hosts a wide range of Docker images. It serves as a central repository where users can discover, download, and share Docker images.

Docker Compose: Docker Compose is a tool that simplifies the orchestration of multi-container applications. It allows developers to define and manage the configuration of multiple interconnected containers as a single unit.

Docker Swarm and Kubernetes: Docker Swarm is Docker’s native clustering and orchestration solution for managing a cluster of Docker nodes.

"I hope everyone gained a good Basic understanding of Docker!”

Thank You.!!

--

--