# Why Docker?

Docker helps simplify and organize installing and running software. To understand Docker, it will  first help to understand the concept of a "container".

A container is conceptually similar to a virtual machine. It is an operating system running within the host operating system of your computer - except the software you want to run, is already installed inside.

When you want to run a piece of software, you simply download the image of the container you want, and launch it. No installation step is required.

This means that every application you run, has its own isolated environment, which brings benefits in several areas including security, compatibility, reliability.&#x20;

Below is a screenshot of a post I found by a Reddit user that perfectly describes how I think about containers. The analogy is a bit quirky, but if you bear with it, hopefully it will help you understand why Docker is so useful.

<figure><img src="/files/kutyyunREFAC3Yc0rf7H" alt=""><figcaption><p>A helpful analogy from a Redditor trying to understand Docker. In the analogy, using containers to serve applications is like using plates to serve food.</p></figcaption></figure>

## The advantages of using Docker

1. No install (or uninstall) step (except for Docker itself)

   • This saves huge amounts of time (for example, no troubleshooting installation errors) and leaves your operating system clean when removing an application.&#x20;
2. Compatibility

   • Docker is compatible with Windows, macOS and any Linux OS

   • Docker works on all popular processor architectures&#x20;
3. Widely used

   • Docker is extremely widely used, which is useful since many different applications can be run using the same tool
4. Run multiple applications on one server

   • Networking is made easy with Docker - for example, routing my-website-1.com to one container and my-website-2.com to another container is simple

   • Running multiple applications on a single server means you can use resources more efficiently

## Should I learn Docker?

Learning Docker could start to make sense if you can see yourself wanting to run a few (or more) services on the web. Since you are on a Coti guide, an obvious example is maybe you want to run a Coti node, but you want to run other applications alongside it, like a dashboard to monitor your node, or a web UI to update your node and view logs. Outside of crypto, there are even more uses of Docker:  maybe you want to host your own [website](https://hub.docker.com/_/wordpress), [blog](https://hub.docker.com/_/ghost), a [forum](https://github.com/discourse/discourse), or a [minecraft](https://hub.docker.com/r/itzg/minecraft-server) server. Using Docker will certainly be easier if you are familiar with the command line.

To give you a sense of just how widely used Docker is, here are a few examples of Docker images for nodes on other cryptocurrency networks:

* [Bitcoin](https://hub.docker.com/r/ruimarinho/bitcoin-core/)
* [Ethereum](https://hub.docker.com/r/ethereum/client-go/)
* [Cardano](https://hub.docker.com/r/inputoutput/cardano-node)
* [Dogecoin](https://hub.docker.com/r/greenbigfrog/dogecoin/tags)
* [Polygon](https://wiki.polygon.technology/docs/operate/full-node-docker/)
* [Solana](https://hub.docker.com/r/solanalabs/solana)

The skills learnt in this guide will be transferable to almost any other piece of software you want to run on the web. In the rare case that a Docker image of something is not available, you can make your own.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docker.guides.coticommunity.com/introduction/why-docker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
