# Docker Octopus

## Why use Docker Octopus

Use Docker Octopus as standalone with each docker octopus product or you can use it together to boost your Docker Swarm Cluster setup. Docker Octopus its a way to working with Docker Swarm as a tool when you did not know how what to do with your Docker Swarm.

The main goal of the project has been to optimize the way auto deployment shut working with the Docker Swarm environments but not exists today. If you use tools like watchtower or swarmpit to auto deployment you will hit the wall if you are storage your private Docker Image on Docker Hub.

Docker Hub have a fair use limit for each account right now on 50.000 pull request for 24 hours, the focus here is to reduce this to very few pull request even if you are running many of the same service with the same images.

![Docker Octopus data flow model](/files/-MZUNw9RnCkC6L8jIsWo)

### How did you get the idea?

The idea its coming based on Docker Swarm experience I got over time. I start using Swarmpit as Web-GUI interface because its have the option auto deployment, I analyze the function and watch the count on my private Docker Hub account so I realized fast its ask for a pull request every single minute its mean 1.440 pull request for every single service there have enabled auto deployment.

The next issue I discovered by using Swarmpit its not multi Docker Swarm Cluster supported and that's mean you need to install and setup it for every single Docker Swarm Cluster environment you got, and are you have the operations roles of many Docker Swarm Clusters you will be vary confused by operate this way.

So I decided  to developing my own agent because so I can understand how Docker Swarm and the Docker Engine API is real working and how to collect data on cross of Docker Swarm Clusters. That's how my [agent](/docker-octopus/agent.md) become a real project, and the Docker Octopus project get start, start as a agent there only can collect the basic data into a MongoDB.

### Why no GUI interface?

Right now I got focus to make a stable platform there can handle Docker Swarm Cluster maintain very easy, so for now I did not have any plans to add a interface for it, not before the platform is stable and can auto deploy updates for services into a Docker Swarm Cluster automatic.

I'm still research witch platform when the time is right, I shut chose to this Web-UI to get best way to get up and running and build a simple interface for every one. When the time is right I will start developing the Web-UI.

### Reduce your pull's with \~95% - Graph summary report

The way Docker Octopus can help you to reduce your pull-request to a Docker Registry server can be huge, in this graph you can see its hitting over 195.000 pull-request every single day, and when the Docker Hub have a fair-use limit on 50.000 then its all most 4 times higher and its waste of pull-request and your system resources.

![Summary graph go from 195.00 to 4.300 pull-request a day - its a save on \~95%](/files/-M_PcBMSuPvGaM2HZex8)

So its will be easy to reduce your pull-request down with \~95% just to change your deployment setup for your Docker Swarm clusters to Docker Octopus.


---

# 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://docs.pnk.sh/docker-octopus.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.
