The ultimate goal of this project is to build a fully decentralised version of Docker Hub with the following features: * Images and their metadata are stored on p2p storage. * Private images are encrypted. * Decentralised identification. * Web frontend is running on p2p network. During the hackathon I got hands on experience with IPFS and documented a way to push Docker images to IPFS and pull images from there. I also built a simple web frontend to browse those images and their tags. As future work I want to build a tool called ipcr. This tool will manage container registries and will allow to push and pull docker images easily and effectively. I also realised that it’s not necessary to have a dedicated web application to browse the container registry. Instead, the ipcr command can render a static website that represents the registry and its contents every time you push an image. That website should be also published to IPFS. It would be also cool to support .crypto domains for registry URLs. Logo made by Pause08 from

How it's made

Under the hood the container registry is basically a hierarchy of IPFS directories and files. I used only ipfs and docker CLI to push and pull Docker images. The registry name is published using IPNS and DNSLink (see The web frontend is built using React and the JavaScript implementation of the IPFS protocol. The demo is hosted on Fleek: As well as at http://eliseyzanko.crypto.

Technologies used