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.

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.

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.

  2. Compatibility

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

    • Docker works on all popular processor architectures

  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, blog, a forum, or a minecraft 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:

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.

Last updated