About Docker
Docker is a software that helps you create and run applications using containers.
Docker is a software that helps you create and run applications using containers.
Containers are like mini-computers that have everything you need to run your application, such as the code, the libraries, and the settings.
Containers are different from normal computers because they:
• Share the operating system of the machine they run on, instead of having their own. This makes them faster and smaller than normal computers.
• Isolate the application from the rest of the machine, so that it does not interfere with other applications or settings. This makes them more secure and reliable than normal computers.
• Move easily from one machine to another, without changing how they work. This makes them more portable and flexible than normal computers.
You can think of Docker as a tool that lets you create and manage containers for your applications. You can use Docker to:
• Build your application and its dependencies into a container image, which is like a blueprint for a container.
• Run your container image on any machine that has Docker installed, creating a container instance, which is like a running computer.
• Ship your container image to other machines or platforms, such as cloud services or servers, without worrying about compatibility issues.
• Manage your containers using commands or tools that let you start, stop, update, or delete them.
About Containers
Containers are like mini-computers that have everything you need to run your application, such as the code, the libraries, and the settings. Containers are different from normal computers because they:
• Share the operating system of the machine they run on, instead of having their own. This makes them faster and smaller than normal computers.
• Isolate the application from the rest of the machine, so that it does not interfere with other applications or settings. This makes them more secure and reliable than normal computers.
• Move easily from one machine to another, without changing how they work. This makes them more portable and flexible than normal computers.
Containers are created using container images, which are like blueprints for containers.
Why Docker So Popular
Docker is a technology that allows you to build, run, and distribute applications using containers. Containers are isolated environments that package the application code and its dependencies, making it easier to deploy and run applications across different platforms. Docker is popular because it has many benefits for developers and system admins, such as:
• Portability: Docker containers can run on any machine that has Docker installed, regardless of the operating system or hardware. This means you can develop and test your applications on your laptop and then deploy them to production servers or cloud platforms without worrying about compatibility issues.
• Efficiency: Docker containers are lightweight and fast, compared to virtual machines that emulate a whole operating system. Docker containers share the host's kernel and resources, which reduces the overhead and improves the performance. You can also run more containers on the same machine, saving costs and resources.
• Scalability: Docker containers are easy to scale up or down, depending on the demand. You can use tools like Docker Swarm or Kubernetes to orchestrate and manage multiple containers across a cluster of machines, ensuring high availability and load balancing.
• Modularity: Docker containers follow the microservices architecture, which means you can break down your application into smaller and independent services that communicate with each other. This makes it easier to develop, update, and debug your application, as well as reuse existing components.
Difference between Docker and Virtualization technology Architecture.
![]() |
We install VM software over host machine like Windows or Ubuntu and then we create VirtualBoxes and install Guest OS inside each VM's.A guest OS could be any OS like RHEL,Ubuntu, Windows irrespective of the host Operating System.
While in case of Docker, it's installation happens on physical machine which may we call as Host OS machine. Post docker setup when Containers are created, they shared the same Docker's Underline OS.So, if multiple containers are created on same Host OS machine, they share underline Docker's OS and that's make them lightweight process as compared to VM's.
Docker's Advantages over Virtualization technology.
Docker has some advantages over virtualization, such as:
• Efficiency: Docker containers are more efficient than virtual machines because they share the host's operating system and resources, instead of having their own guest operating system and virtual hardware. This reduces the overhead and improves the performance of the containers. You can also run more containers on the same machine, saving costs and resources
• Portability: Docker containers are more portable than virtual machines because they contain everything they need to run the application, such as the code, the libraries, and the settings. This means you can move your containers from one machine to another, or from one platform to another, without worrying about compatibility issues. You can also use Docker to build, ship, and run your containers anywhere
• Scalability: Docker containers are more scalable than virtual machines because they are lightweight and fast, and can spin up or down quickly depending on the demand. You can also use tools like Docker Swarm or Kubernetes to orchestrate and manage multiple containers across a cluster of machines, ensuring high availability and load balancing
• Modularity: Docker containers are more modular than virtual machines because they follow the microservices architecture, which means you can break down your application into smaller and independent services that communicate with each other. This makes it easier to develop, update, and debug your application, as well as reuse existing components
• Security: Docker containers are more secure than virtual machines because they isolate the application from the rest of the machine, preventing it from interfering with other applications or settings. Docker also provides the strongest default isolation capabilities in the industry, and allows you to set granular policies and controls for your containers
• Support: Docker has a large and active community of developers and users who contribute to its development and improvement. Docker also has a rich ecosystem of tools and services that integrate with it and enhance its functionality.
Tool for Working with Docker-Containers -The IDE
An IDE for a Docker project is a tool that supports working with Docker containers and images, as well as Docker Compose and Kubernetes applications.
We will use Visual Studio Code as this is best suitable for Docker projects.
Visual Studio Code: A popular and versatile code editor that integrates with Docker for easy building, running, and debugging of containerized applications. It also provides IntelliSense and tooltips for docker-compose.yml files, and supports Kubernetes development.
Docker Playground
Now Suppose if somehow you are unable to install Docker on any host OS machine, then you can use a browser-based platform provided by Docker, i.e Docker playground.
Docker Playground is a free, online platform that lets you learn and experiment with Docker without installing anything on your machine. You can use Docker Playground to:
• Run Docker commands and containers in a virtualized environment.
• Access the Docker 101 tutorial that guides you through the basics of Docker.
• Use pre-configured templates to deploy applications using Docker Compose or Kubernetes.
To use Docker Playground, you need to have a Docker Hub or GitHub account. You can sign in with either of them and start a new instance that gives you access to a terminal with Docker installed. You can also open ports to access your applications from the browser
Docker has some limitations, such as:
• The sessions are temporary and expire after four hours of inactivity.
• The resources are limited and shared with other users.
• The data is not persistent and will be lost when the session ends or the instance is deleted.
• The security is not guaranteed and you should not use sensitive information or credentials on Docker Playground
To use Docker playground create login on Docker Playground
Docker Engine and Docker Desktop
Docker Engine and Docker Desktop are two different products from Docker that serve different purposes.
Docker Engine is the core component of Docker that allows you to build, run, and manage containers. It consists of a daemon process (dockerd), a REST API, and a command-line interface (docker). Docker Engine is available for Linux, Windows, and macOS platforms. On Linux, you can install Docker Engine directly on the host operating system. On Windows and macOS, you need to use a virtual machine or a Linux subsystem to run Docker Engine
Docker Desktop is a graphical user interface (GUI) application that simplifies the installation and usage of Docker Engine on Windows and macOS platforms. It also provides additional features such as:
• Docker Compose and Kubernetes integration for orchestrating multiple containers.
• Docker Hub integration for accessing public and private repositories of images.
• Docker Extensions for enhancing the functionality of Docker with plugins and tools.
• Docker Dashboard for managing containers, images, networks, volumes, and contexts.
• Dev Environments for creating and sharing development environments with your team.
• File sharing and networking support for accessing files and services on the host machine from containers
Docker Desktop also includes a lightweight Linux virtual machine that runs Docker Engine inside it. This virtual machine is transparent to the user and handles the communication between the host operating system and the containers. You can also configure the resources allocated to this virtual machine, such as CPU, memory, disk space, etc
In summary, Docker Engine is the core technology that enables containerization, while Docker Desktop is a GUI application that simplifies the installation and usage of Docker Engine on Windows and macOS platforms. Docker Desktop for Linux is a new product that provides a similar GUI experience for Linux users without using a virtual machine.
Docker HUB
Let's take a scenario where you are willing to share your project codes with your colleague, you might be using some software to upload that code to somewhere at shared location and from there your colleague can access that code file. In the same way Docker Hub provided facility to store and retrieve code images.
Docker Hub is a cloud-based service that allows you to store and share container images with your team and the Docker community. You can use Docker Hub to:
• Explore and download public images from various sources, such as official images, publisher images, verified images, and community images.
• Push and pull your own images to public or private repositories.
• Automate the building of your images from GitHub or Bitbucket and push them to Docker Hub.
• Manage the access and permissions of your images for users, teams, and organizations.
• Scan your images for vulnerabilities and security issues.
• Integrate Docker Hub with other services and tools using webhooks.
Docker Hub is the world's largest repository of container images with more than one million images available. You can use Docker Hub to find and use high-quality container images for your applications, or to share your own images with others. You can also use Docker Hub to learn more about Docker and containerization through the Docker 101 tutorial.

very simple and crystal clear info.
ReplyDeletegood job done by @abhishek