The Container Registry is implemented using the file system.
- ✅ Implemented of the OCI Distribution Spec
- Pull
- Push
- Content Discovery
- Content Management
- ✅ Supported Docker Client
I have developed this container registry for learning purposes. And the reason why I implemented this using the file system because I thought it would be easier to understand how images are stored and what kind of files are stored.
⚠ BTW, I do not recommend that you run this application in production.
Need to fix /etc/hosts
like below.
...
# Added by manually
127.0.0.1 container-registry
# End of section
- Build binary -
make build
- Run Container Registry -
./bin/registry
If you want to clean up in testdata
directry, let's use make clean
.
- Pull any images to push -
docker pull registry:2
- Tag to push -
docker tag $(docker images --format '{{.ID}}' --filter=reference='registry') container-registry:5080/registry:latest
- Try push -
docker push container-registry:5080/registry:latest
Try pull if you have completed push steps
$ docker pull container-registry:5080/registry:latest
MacOS
$ tail -f ~/Library/Containers/com.docker.docker/Data/log/vm/dockerd.log