-
-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when listing library/* tags w/ fresh install #155
Comments
Hi, thank you for issue, I'm glad that you are using my project :). Are you using a private registry as a docker hub mirror ? Like this example https://docs.docker.com/registry/recipes/mirror/ ? |
Hi @Joxit Yes, exactly like in the example… Cheers |
Hi, Ok, I tried your example, and it seems that using the UI with a docker hub mirror is dangerous... You can reach your docker hub quota limit easily. {"errors":[{"code":"UNKNOWN","message":"unknown error","detail":{"errors":[{"code":"TOOMANYREQUESTS","message":"You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit"}]}}]} I couldn't analyze how the docker mirror actually works, but it seems to act as a proxy for the requests that are made. If docker hub gives you an error, your mirror will also give you an error. Since the response |
My private registry also act as a mirror. And I ran into the same situation, showing So the solution is clear, find out tags only exist on the mirror and do not request other tags detail. But here comes another problem, how can I tell a tag is exists on the mirror since |
Yes @gahoo you understood everything, that's why the UI can be dangerous when the proxy is on 😕 |
I'm having the exact same problem, I thought I can easily spin up this frontend for my pull-through cache registry and would appreciate some solution regarding this. Is there a way to have this UI only show images and tags which are present on the registry it is pointed at? (Also I find it a bit strange that it is doing client-side requests to the underlying registry, I thought the UI acts as a proxy for these requests.) |
After some further investigation, I came to the conclusion that my idea cannot be implemented. I guess the official docker registry in proxy mode is so transparent regarding API calls that there is no way to query data from it (e.g. what images did it already download to its own storage.) Every single API call ends up at the official Docker Hub. I have another (stupid?) idea though: spin up a secondary registry in non-proxy and read-only mode, which uses the same storage as the pull-through cache. Hopefully, they won't conflict too much and I will have a registry and proper API to at least inspect my cached content. Will report back if it works. |
🎉 It works! 🎉 It's not perfect, because requesting extra information which is "mentioned" in manifests, but not actually downloaded to the mirror registry shows an error, but apart from this small issue you can browse your cached catalogs and tags. 🌐 My setup:
🏁 Goal: to have some UI showing the contents of my own mirror registry, without acting as a completely transparent API proxy to the official DockerHub. ✅ And it seems to be working mostly fine! Proof: The last screenshot shows the error message when requesting some data which is actually not mirrored from the official DockerHub, as it was not needed yet by any docker client. |
Hi @Semmu thank you for your deep investigation and idea ! I added a section for this in the FAQ and I added your name in the contribution list ! |
Hi, I use this docker registry UI and I have an issue...
Bug description
When I do a pull (e.g.
docker pull ubuntu
), I can see the fetched image in the UI.However, when I click on it, then I see a lot of errors.
How to Reproduce
For UI bug, steps to reproduce the behavior:
docker pull ubuntu
library/ubuntu
For service bug, steps to reproduce the behavior:
My docker-compose file
Expected behavior
No errors should occur.
Screenshots
System information
Additional context
Appart from that, the UI works & looks fine 👍
The text was updated successfully, but these errors were encountered: