iute is an all-in-one distributed docker registry with next to no coding involved.
3.1K
iute is an all-in-one distributed docker registry with next to no coding involved.
iute comes bundled with:
At ParseHub we wanted a way to reduce our docker push to docker pull round trip time, which was bottlenecked on a single build server which pushed to a single registry which was pulled from O(n) servers at once.
Instead, we came up with a system where a cluster of iute registries were running throughout our production and staging machines.
This uses the powerful BitTorrent file distribution system to make the docker push speed equal to pushing locally,
and the docker pull speed equivalent to pulling locally.
We use etcd to implement a distributed Readers-writer lock to ensure that no registries are being pulled from at the same time that a registry is being pushed to.
This is a reasonable compromise in our use case, which is push THEN pull exclusively.
git clone https://github.com/parsehub/iute.gitdocker build -t 'iute:latest' .docker run --rm -i iute:latest --create localhost:10000-10006 > bundle.ut,
load the bundle with docker run --name iute -p 10001-10006:1-6,8000:8000 -i iute:latest:10001-10006 --registry-port 8000 localhost < bundle.ut, and
start iute with docker start iutedocker rm -f iute
docker build -t iute:1.0 . && \
docker run --rm -i iute:1.0 --create localhost:10000-10005 > bundle.ut && \
docker run -p 10000-10005:10000-10005 -p 8000:8000 --network host --name iute -i iute:1.0 localhost:10000-10005 -r 8000 < bundle.ut && \
docker start iute
docker rm -f iute2
docker run -p 10006-10011:10006-10011 -p 8000:8000 --network host --name iute2 -i iute:1.0 localhost:10006-10011 < bundle.ut && \
docker start iute2
Content type
Image
Digest
Size
259.3 MB
Last updated
almost 7 years ago
docker pull parsehub/iute:1.8