Live data from Hacker News

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

github.com

61–70 of 178 posts

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

#61
post #21

Earlier quoted context omitted.

The right yq|xargs invocation on your compose file should get you to a oneshot.

I would prefer docker compose pussh or whatever

That's an interesting idea. I don't think you can create a subcommand/plugin for compose but creating a 'docker composepussh' command that parses the compose file and runs 'docker pussh' should be possible.

My plan is to integrate Unregistry in Uncloud as the next step to make the build/deploy flow super simple and smooth. Check out Uncloud (link in the original post), it uses Compose as well.

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

#62
post #9

As a long ago fan of chef-solo, this is really cool. Currently, I need to use a docker registry for my Kamal deployments. Are you familiar with it and if this removes the 3rd party dependency?

Yep, I'm familiar with Kamal and it actually inspired me to build Uncloud using similar principles but with more cluster-like capabilities.

I built Unregistry for Uncloud but I belive Kamal could also benefit from using it.

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

#63
post #4

A quick and dirty version: docker -H host1 image save IMAGE | docker -H host2 image load note: this isn't efficient at all (no compression or layer caching)!

On podman this is built in as native command podman-image-scp[0], which perhaps could be more efficient with SSH compression. [0] https://docs.podman.io/en/stable/markdown/podman-image-scp.1...

So with Podman, this exists already, but for docker, this has to be created by the community.

I am a bystander to these technologies. I’ve built and debug’ed the rare image, and I use docker desktop on my Mac to isolate db images.

When I see things like these, I’m always curious why docker, which seems so much more beaurecratic/convoluted, prevails over podman. I totally admit this is a naive impression.

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

#64
post #8

this is nice, hopefully DHH and the folks working on Kamal adopt this. the whole reason I didn't end up using kamal was the 'need' a docker registry thing. when I can easily push a dockerfile / compose to my vps build an image there and restart to deploy via a make command

I don't see a reason to not adopt this in Kamal. I'm also building Uncloud that took a lot of inspiration from Kamal, please check it out. I will integrate unregistry into uncloud soon to make the build/deploy process a breeze.

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

#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...

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

#66
post #27

This should have always been a thing! Brilliant. Docker registries have their place but are overall over-engineered and an antithesis to the hacker mentality.

As a VC-funded company Docker had to make money somehow.

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

#67
post #4

A quick and dirty version: docker -H host1 image save IMAGE | docker -H host2 image load note: this isn't efficient at all (no compression or layer caching)!

On podman this is built in as native command podman-image-scp[0], which perhaps could be more efficient with SSH compression. [0] https://docs.podman.io/en/stable/markdown/podman-image-scp.1...

Ah neat I didn't know that podman has 'image scp'. Thank you for sharing. Do you think it was more straightforward to implement this in podman because you can easily access its images and metadata as files on the file system without having to coordinate with any daemon?

Docker and containerd also store their images using a specific file system layout and a boltdb for metadata but I was afraid to access them directly. The owners and coordinators are still Docker/containerd so proper locks should be handled through them. As a result we become limited by the API that docker/containerd daemons provide.

For example, Docker daemon API doesn't provide a way to get or upload a particular image layer. That's why unregistry uses the containerd image store, not the classic Docker image store.

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

#68

Earlier quoted context omitted.

On podman this is built in as native command podman-image-scp[0], which perhaps could be more efficient with SSH compression. [0] https://docs.podman.io/en/stable/markdown/podman-image-scp.1...

So with Podman, this exists already, but for docker, this has to be created by the community. I am a bystander to these technologies. I’ve built and debug’ed the rare image, and I use docker desktop on my Mac to isolate db images. When I see things like these, I’m always curious why docker, which seems so much more beaurecratic/convoluted, prevails over podman. I totally admit this is a naive impression.

> why docker, which seems so much more beaurecratic/convoluted, prevails over podman

First mover advantage and ongoing VC-funded marketing/DevRel

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

#70
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.

yeah i deal with horrible, bloated python machine learnings shits; >1 GB images are nothing. this is excellent, and i never knew how much i needed this tool until now.
Post reply on HN