←back to thread

726 points psviderski | 7 comments | | HN request time: 0.471s | source | bottom

I got tired of the push-to-registry/pull-from-registry dance every time I needed to deploy a Docker image.

In certain cases, using a full-fledged external (or even local) registry is annoying overhead. And if you think about it, there's already a form of registry present on any of your Docker-enabled hosts — the Docker's own image storage.

So I built Unregistry [1] that exposes Docker's (containerd) image storage through a standard registry API. It adds a `docker pussh` command that pushes images directly to remote Docker daemons over SSH. It transfers only the missing layers, making it fast and efficient.

  docker pussh myapp:latest user@server
Under the hood, it starts a temporary unregistry container on the remote host, pushes to it through an SSH tunnel, and cleans up when done.

I've built it as a byproduct while working on Uncloud [2], a tool for deploying containers across a network of Docker hosts, and figured it'd be useful as a standalone project.

Would love to hear your thoughts and use cases!

[1]: https://github.com/psviderski/unregistry

[2]: https://github.com/psviderski/uncloud

1. lxe ◴[] No.44314399[source]
Ooh this made me discover uncloud. Sounds like exactly what I was looking for. I wanted something like dokku but beefier for a sideproject server setup.
replies(3): >>44314441 #>>44314618 #>>44315417 #
2. nodesocket ◴[] No.44314441[source]
A recommendation for Portainer if you haven't used or considered it. I'm running two EC2 instances on AWS using portainer community edition and portainer agent and works really well. The stack feature (which is just docker compose) is also super nice. One EC2 instance; running Portainer agent runs Caddy in a container which acts as the load balancer and reverse proxy.
replies(1): >>44320282 #
3. vhodges ◴[] No.44314618[source]
There is also https://skateco.github.io/ which (at quick glance) seems similar
replies(1): >>44321965 #
4. psviderski ◴[] No.44315417[source]
I'm glad the idea of uncloud resonated with you. Feel free to join our Discord if you have questions or need help
5. lxe ◴[] No.44320282[source]
I'm actually running portainer for my homelab setup hosting things like octoprint and omada controller etc.
6. byrnedo ◴[] No.44321965[source]
Skate author here: please try it out! I haven’t gotten round to diving deep into uncloud yet, but I think maybe the two projects differ in that skate has no control plane; the cli is the control plane.

I built skate out of that exact desire to have a dokku like experience that was multi host and used a standard deployment configuration syntax ( k8s manifests ).

https://skateco.github.io/docs/getting-started/

replies(1): >>44323226 #
7. benwaffle ◴[] No.44323226{3}[source]
Looks like uncloud has no control plane, just a CLI: https://github.com/psviderski/uncloud#-features