Live data from Hacker News

Show HN: Unregistry – “docker push” directly to servers without a registry

github.com

71–80 of 178 posts

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#71

Neat project and approach! I got fed up with expensive registries and ended up self-hosting Zot [1], but this seems way easier for some use cases. Does anyone else wish there was an easy-to-configure, cheap & usage-based, private registry service? [1]: https://zotregistry.dev

Your SSL certificate for zothub.io has expired in case you weren’t aware.

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#72
post #58

Does this work with Kubernetes image pulls?

I guess you're asking about the registry part (not 'pussh' command). It exposes the containerd image store as standard registry API so you can use any tools that work with regular registry to pull/push images to it.

You should be able to run unregistry as a standalone service on one of the nodes. Kubernetes uses containerd for storing images on nodes. So unregistry will expose the node's images as a registry. Then you should be able to run k8s deployments using 'unregistry.NAMESPACE:5000/image-name:tag' image. kubelets on other nodes will be pulling the image from unregistry.

You may want to take a look at https://spegel.dev/ which works similarly but was created specifically for Kubernetes.

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#73
post #65

very cool. now lets integrate this such that we can do `docker/podman push localimage:localtag ssh://hostname:port/remoteimage:remotetag` without extra software installed :)

I was informed that Podman at least has a `podman image scp` function for doing just this...

https://www.redhat.com/en/blog/podman-transfer-container-ima...

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#74
Considering the nature of servers, security boundaries and hardening,

> Linux via Homebrew

Please don't encourage this on Linux. It happens to offer a Linux setup as an afterthought but behaves like a pigeon on a chessboard rather than a package manager.

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#76

This is really cool. Do you support or plan to support docker compose?

Thank you! Can you please clarify what kind of support you mean for docker compose?

Right now, I use ssh to trigger a docker compose restart that pulls all the latest images on some of my servers (we have a few dedicated hosting/on premise setups). That then needs to reach out to our registry to pull images. So, it's this weird mix of push pull that ends up needing a central registry.

What would be nicer instead is some variation of docker compose pussh that pushes the latest versions of local images to the remote host based on the remote docker-compose.yml file. The alternative would be docker pusshing the affected containers one by by one and then triggering a docker compose restart. Automating that would be useful and probably not that hard.

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#77

What is the container for / what does this do that `docker save some:img | ssh wherever docker load` doesn't? More efficient handling of layers or something?

Relatively early on the page it says:

"docker save | ssh | docker load transfers the entire image, even if 90% already exists on the server"

Re: Show HN: Unregistry – “docker push” directly to servers without a registry

#79
post #52

Earlier quoted context omitted.

You can already achieve the same thing by making your image into an archive, pushing it to your server, and then running it from the archive on your server. Saving as archive looks like this: `docker save -o may-app.tar my-app:latest` And loading it looks like this: `docker load -i /path/to/my-app.tar` Using a tool like ansible, you can achieve easily what "Unregistry" is doing automatically. According to the github…

If you have an image with 100MB worth of bottom layers, and only change the tiny top layer, the unregistry will only send the top layer, while save / load would send the whole 100MB+. Hence the value.

Docker also has export/load commands. They only exports the current layer filesystem.
Post reply on HN