What is Docker and why do we use it?
Tags: docker, containers, learning, programming
Published: 2024-06-24 12:28:54



![Diagram illustrating Docker’s role in building, testing, and deploying applications](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7169tbl57211ton0xccv.png)



## What is Docker?
Docker is a free software tool that helps you build, test, and deploy applications quickly. It allows you to manage your application’s infrastructure just like you manage software on your computer. This makes it easy to move your application between different computers or environments without worrying about compatibility issues.

## Why do use Docker?
With Docker, you can manage your applications and setup just like you manage programs and applications on your own computer. It means you can easily set up, run and test your applications on a personal laptop and cloud machine without any compatibility and environment issues. Docker simplifies the process of getting your applications up and running, making development and deployment very easy.

## Docker’s Origin
Docker was developed and created by ‘Solomon Hykes’ in March 20, 2013, For more details visit the Git repository: and Docker's official website Docker.

## What is Infrastructure?
I hope you know about it, but if you don’t, I will explain it to you. Infrastructure is simply a setup of tools, software, and other necessary elements that are needed to run an application. This setup, which includes all the hardware, software, and connections, is known as infrastructure.

## What is a Docker Container?
Docker is using a technology called OS-level virtualization, which allows you to create “containers.”

A container is like a small, lightweight package of docker that includes everything your application needs to run, such as code, libraries, and settings. This way, you can be sure your application will work the same way everywhere, whether it’s on your computer, someone else’s, or even on servers in the cloud.

In simple terms, Docker makes it easier to develop, test, and deploy applications by putting them in these handy containers, ensuring they run consistently no matter where they are used.

## What is a Docker engine?
A Docker Engine is a part of Docker and it is hosted the Containers is called the Docker Engine. Docker Engine acts as client-server with:

- A docker engine is running the daemon process docked
- A docker Engine provides APIs, which specify an interface to talk with the Docker daemon.
- A docker Engine provides the command line interface (CLI) 
- client to communicate with Docker and their packages.
- For more details: [Docker Engine](https://docs.docker.com/engine)

## What is Docker Desktop?
A Docker Desktop is a docker tool that provides the Graphical User Interface (GUI), where you can see and manage the containers, applications, images, networks and volumes from your computers.
You can download and install the [Docker Desktop](https://docs.docker.com/desktop)

## What is Docker Compose?
Docker Compose is a tool that makes it easy to run applications with multiple containers. It helps streamline both development and deployment processes.

With Docker Compose, you define your entire application setup, including services, networks, and storage, in one simple YAML file. This file describes how all parts of your application work together. Then, with just one command, you can start up everything based on this configuration.

Compose is versatile and works in all stages of development, including production, staging, development, testing, and continuous integration (CI). It offers commands to manage your application’s lifecycle, such as:

- Starting, stopping, and rebuilding services
- Checking the status of running services
- Viewing live logs of running services
- Running specific commands on any service

## What is Docker Build?
Docker Build is a crucial feature of Docker Engine. It’s used whenever you create a Docker image, which is a package containing your application and everything it needs to run.

Docker Build isn’t just a simple command; it’s an entire system designed to help you package, bundle, and ship your code efficiently. It plays a vital role in the software development process, making it easy to create consistent, portable application images.

With Docker Build, you get a range of tools and features that support both basic and advanced tasks. Whether you’re just getting started or working on complex projects, Docker Build helps streamline your workflow and ensure your applications are ready to run anywhere.

For more details visit the [Docker](https://www.docker.com/)

_This is Part 1 of an overview of Docker and its components. In Part 2, I will share how to install and set up Docker with examples. Stay tuned for complete tutorials with examples. Please like, follow, and share this post!_

Please Follow me:
[Dev](https://dev.to/mesonu)
[LinkedIn](https://www.linkedin.com/in/sonu-k-76625a93/)