Why ShellHub uses Docker?

Why ShellHub uses Docker?

If you are already familiar with ShellHub probably noted that Docker and ShellHub go hand in hand. When you follow the official documentation about installing ShellHub Agent on a device, you will be guided to install it using Docker. Although Docker is not a mandatory tool to install ShellHub Agent, it is highly recommended. Why? In this article, I will address this subject.

What is Docker?

Probably you've already heard about Docker. Maybe you even use it every day. Anyway, here's the definition given by themselves:

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. 

Docker revolutionizes software development and deployment by offering a comprehensive platform for containerization. At its core, Docker enables developers to package applications and their dependencies into isolated units called containers, providing a consistent environment for software to run across different systems. This approach streamlines the development process, as developers can focus on writing code without worrying about compatibility issues or differences in underlying infrastructure. Moreover, Docker containers are lightweight, as they're not virtual machines, making them easy to deploy and scale, whether on local machines, servers, or cloud platforms.

Diagram showing a infrastructure running a Operating System. This OS runs Docker. The containerized applications runs inside Docker.
Diagram showing the structure to containerize applications (source: Docker.com)

Docker's functionality extends beyond mere containerization; it includes tools for building container images, managing container lifecycles, orchestrating containerized applications, and more. By abstracting away the complexities of system-level configurations, Docker empowers developers to deliver software faster, reliably, and with greater efficiency, ultimately driving innovation and collaboration in the software industry.

How it works?


Docker simplifies the software development, distribution, and deployment process through its core components: Dockerfile, Docker image, and Docker container. A Dockerfile serves as a blueprint for building Docker images, containing instructions to define the environment and configuration of the application within the container. These instructions, such as FROM, RUN, COPY, ENV, and CMD, automate the process of building Docker images, ensuring consistency across different environments. Once built, a Docker image is a standalone, executable package that encapsulates the application and its dependencies. Immutable and stored in a registry, Docker images are easily shared, versioned, and reused. Finally, a Docker container is a lightweight, runnable instance of a Docker image.

Diagram showing a Docker file building a Docker image and it, which in turn runs a Docker container.
Docker container generation diagram

How does it help ShellHub?

When we think about a very comprehensive tool, we need to think about its distribution. ShellHub can run on almost any device. What makes it easily possible is Docker.

Docker encapsulates everything ShellHub Agent needs to run appropriately. You don't need to spend time and worry about dependencies, extra permissions, and translating specific commands for your Linux distribution. All your device needs is the capability to run Docker.

This ease of distribution and deployment not only simplifies the user experience but also accelerates adoption and promotes widespread use of tools like ShellHub, driving efficiency and productivity in various industries.

In a nutshell...

Whether deploying ShellHub on a single-board computer, a virtual machine, or a cloud instance, Docker ensures a consistent and reliable experience, regardless of the underlying hardware or operating system.

Now you know how it works, try it! It's free up 3 devices!

References