Using the power of the Alin.io event distribution system, we built Container Registry on top of it as a distributed storage backend for Container Image Layers.
So, the main idea is to split layers into multiple small chunks and distribute them over servers. When you upload or download Container Image Layers, Alin.io Container Registry will send you Layer chunks from various sources, giving about two times more performance in terms of networking usage.
Scalable Docker Registry
The most popular container technology is, of course, Docker Containers, and at Alin.io, we are mainly focusing on that. We even built our distributed Docker Clustering technology primarily for our use case.
Current Docker Distribution/Registry releases are stable and work well when you need something to work in a small environment. But when you need to scale it, scaling storage is always an issue to give access to every distribution/registry server. Sometimes, Docker Images get more extensive, and network traffic on hold increases dramatically. And that's why we started an investigation of that issue because we also had that problem.
Based on the ideology of TreeScale technology, all things should be interconnected and fully distributed without impacting other services during downtimes. Using this principle, we built a storage backend especially for Docker Distribution/Registry so that now you don't have a 300MB Image Layer sitting somewhere in your storage that will eat total bandwidth during the download/upload process; instead, we just made a split into small prices and using TreeScale system submitted it into multiple servers. Whenever you download the Docker Image layer, TreeScale combines the parts from various servers and responds to your request. This principle gives about 2-2.5 times more performance than downloading full images simultaneously.
Using From Command Line
For now, it is possible to use Container Registry only with Docker CLI, Docker's primary command line tool. First, log in to TreeScale Container Registry for other actions.
~# docker login container.alin.io
username: [your Alin.io Username]
password: [Alin.io Access Token]
After this step, you can make regular pull/push actions for Docker Images like this one.