Push Docker images directly to remote servers without a registry
P

Push Docker images directly to remote servers without a registry

Push Docker images directly to remote servers without a registry

4,810 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Skip the Registry: Push Docker Images Directly to Your Servers

If you’ve ever deployed a Docker image, you know the usual drill: build, tag, push to a registry (like Docker Hub, ECR, or GCR), then pull on the server. It works, but it adds steps, costs, and sometimes complexity. What if you could just push an image straight to your remote server, no registry in the middle?

That’s exactly what unregistry does. It’s a clever little tool that bypasses the traditional registry workflow, letting you send a Docker image directly over SSH to a remote machine. It’s perfect for quick deployments, local development syncs, or environments where setting up a full registry feels like overkill.

What It Does

Unregistry is a CLI tool that takes a local Docker image, streams it over an SSH connection, and loads it directly onto a remote Docker daemon. No intermediate registry is needed. You run a command on your local machine, and moments later, the image is ready to run on your server.

Why It’s Cool

The magic here is in the simplicity and the clever use of existing tools. Unregistry doesn’t run a persistent service on your server. Instead, it uses docker save to create an image tarball, pipes it over SSH, and uses docker load on the other side to ingest it. This approach has some neat benefits:

  • No Registry Required: You don’t need to set up, configure, or pay for a private registry. This is huge for small projects, prototypes, or air-gapped environments.
  • It’s Fast for Iteration: When you’re actively developing and testing on a remote staging server, pushing directly can be faster than the build-push-pull cycle.
  • Works with Existing SSH Security: It leverages your already-configured SSH keys and access controls. If you can SSH to the server, you can push an image to it.
  • Single-Command Simplicity: The entire process is wrapped in one clean command: unregistry push.

How to Try It

Getting started is straightforward. Unregistry is a Go binary, so you can install it directly.

  1. Install it: Grab the latest binary from the GitHub Releases page, or use Go to install it:

    go install github.com/psviderski/unregistry@latest
    

    Make sure your $GOPATH/bin (usually ~/go/bin) is in your PATH.

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 18, 2025