[{"data":1,"prerenderedAt":707},["ShallowReactive",2],{"project-44314085":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":44,"post_text":46,"what":47,"said":67,"maker_in_thread":217,"shape":230,"grid":234,"attempts":670,"same_week":671,"maker_shows":276,"maker_hidden":700,"reader_version":701,"card":702},"44314085","Unregistry","“docker push” directly to servers without a registry","title","Show HN: Unregistry – “docker push” directly to servers without a registry","https:\u002F\u002Fgithub.com\u002Fpsviderski\u002Funregistry","github.com","psviderski",1750288630,2025,726,164,38,3837,1,"legend","dev_tools","container deployment","cli",[24,25,26,27],"docker push","docker registry alternative","ssh deployment","containerd","curious",0.37,{"positive":31,"neutral":32,"mixed":18,"critical":33},30,47,7,85,{"idea":36,"design":39,"execution":41,"performance":43},{"positive":37,"critical":38},22,4,{"positive":18,"critical":40},3,{"positive":42,"critical":42},0,{"positive":38,"critical":42},[45,18,18,45,40,45,45,42,40,45,40,40,40,40,18,45,45,45,40,40,45,40,45,38,38,45,38,40,40,45,45,45,40,45,42,42,18,40,40,40],5,"I got tired of the push-to-registry\u002Fpull-from-registry dance every time I needed to deploy a Docker image.\n\nIn 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.\n\nSo 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",{"problem":48,"audience":54,"pricing":59,"motivation":60,"time_to_build":59,"stack":64,"openness":65,"stage":66,"team_size":66},{"value":49,"source":50,"evidence":51},"Pushing and pulling Docker images through a registry is extra overhead when deploying to a known host","maker",[52],{"id":53},"post",{"value":55,"source":56,"evidence":57},"Developers deploying Docker images to remote Docker hosts","inferred",[58],{"id":53},null,{"value":61,"source":50,"evidence":62},"Got tired of the push-to-registry, pull-from-registry workflow; built as a byproduct of Uncloud",[63],{"id":53},[],"open_source","unknown",{"praise":68,"objections":104,"requests":116,"questions":142,"alternatives":165},[69,89],{"value":70,"source":71,"evidence":72},"Idea seen as long overdue and elegant, with the pussh pun praised","commenter",[73,77,81,85],{"id":74,"by":75,"text":76},"44314310","nine_k","Nice. And the `pussh` command definitely deserves the distinction of one of the most elegant puns: easy to remember, self-explanatory, and just one letter away from its sister…",{"id":78,"by":79,"text":80},"44397579","sebastos","Amazing. Our company has to push gigantic docker images to IoT style devices, and we’ve had to maintain an installer script that downloads and stands up a local dummy registry,…",{"id":82,"by":83,"text":84},"44314577","metadat","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.",{"id":86,"by":87,"text":88},"44317189","rcarmo","I think this is great and have long wondered why it wasn’t an out of the box feature in Docker itself.",{"value":90,"source":71,"evidence":91},"Useful for avoiding registry costs and transferring only missing layers",[92,96,100],{"id":93,"by":94,"text":95},"44314416","actinium226","This is excellent. I've been doing the save\u002Fload and it works fine for me, but I like the idea that this only transfers missing layers. FWIW I've been saving then using mscp to…",{"id":97,"by":98,"text":99},"44316192","iw7tdb2kqo9","I think it will be a good fit for me. Currently our 3GB docker image takes a lot of time to push to Github package registry from Github Action and pull from EC2.",{"id":101,"by":102,"text":103},"44314831","layoric","I'm so glad there are tools like this and swing back to selfhosted solutions, especially leveraging SSH tooling. Well done and thanks for sharing, will definitely be giving it a…",[105,109],{"value":106,"source":71,"evidence":107},"Requires running an unregistry container on the remote host",[108],{"id":78,"by":79,"text":80},{"value":110,"source":71,"evidence":111},"Couples deployment to a service, making scaling and blue\u002Fgreen harder",[112],{"id":113,"by":114,"text":115},"44314970","fellatio","Neat idea. This probably has the disadvantage of coupling deployment to a service. For example how do you scale up or red\u002Fgreen (you'd need the thing that does this to be aware…",[117,128,135],{"value":118,"source":71,"evidence":119},"Support for Kubernetes image pulls",[120,124],{"id":121,"by":122,"text":123},"44317556","spwa4","THANK you. Can you do the same for kubernetes somehow?",{"id":125,"by":126,"text":127},"44315367","czhu12","Does this work with Kubernetes image pulls?",{"value":129,"source":71,"evidence":130},"Docker compose support",[131],{"id":132,"by":133,"text":134},"44314204","koakuma-chan","This is really cool. Do you support or plan to support docker compose?",{"value":136,"source":71,"evidence":137},"Integration into Docker\u002FPodman natively",[138],{"id":139,"by":140,"text":141},"44314287","s1mplicissimus","very cool. now lets integrate this such that we can do `docker\u002Fpodman push localimage:localtag ssh:\u002F\u002Fhostname:port\u002Fremoteimage:remotetag` without extra software installed :)",[143,158],{"value":144,"source":71,"evidence":145},"How does it differ from skopeo or docker save\u002Fload",[146,150,154],{"id":147,"by":148,"text":149},"44314264","nothrabannosir","What’s the difference between this and skopeo? Is it the ssh support ? I’m not super familiar with skopeo forgive my ignorance https:\u002F\u002Fgithub.com\u002Fcontainers\u002Fskopeo",{"id":151,"by":152,"text":153},"44314496","yjftsjthsd-h","What is the container for \u002F what does this do that `docker save some:img | ssh wherever docker load` doesn't? More efficient handling of layers or something?",{"id":155,"by":156,"text":157},"44314256","jlhawn","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)!",{"value":159,"source":71,"evidence":160},"Does it work with buildah or OCI tooling without full Docker",[161],{"id":162,"by":163,"text":164},"44314910","alisonatwork","This is a cool idea that seems like it would integrate well with systems already using push deploy tooling like Ansible. It also seems like it would work as a good hotfix…",[166,178,193,197,204,210],{"value":167,"source":71,"evidence":168},"docker save piped to docker load over SSH",[169,170,174],{"id":155,"by":156,"text":157},{"id":171,"by":172,"text":173},"44315288","quantadev","I always just use \"docker save\" to generate a TAR file, then copy the TAR file to the server, and then run \"docker load\" (on the server) to install the TAR file on the target…",{"id":175,"by":176,"text":177},"44316121","larsnystrom","Nice to only have to push the layers that changed. For me it's been enough to just do \"docker save my-image | ssh host 'docker load'\" but I don't push images very often so for me…",{"value":179,"source":71,"evidence":180},"Docker contexts \u002F DOCKER_HOST over SSH",[181,185,189],{"id":182,"by":183,"text":184},"44319604","revicon","Is this different from using a remote docker context? My workflow in my homelab is to create a remote docker context like this... (from my local development machine) > docker…",{"id":186,"by":187,"text":188},"44317574","jdsleppy","I've been very happy doing this: DOCKER_HOST=“ssh:\u002F\u002Fuser@remotehost” docker-compose up -d It works with plain docker, too. Another user is getting at the same idea when they…",{"id":190,"by":191,"text":192},"44314321","armx40","How about using docker context. I use that a lot and works nicely.",{"value":194,"source":71,"evidence":195},"skopeo",[196],{"id":147,"by":148,"text":149},{"value":198,"source":71,"evidence":199},"docker-pushmi-pullyu",[200],{"id":201,"by":202,"text":203},"44319187","matt_kantor","Functionality-wise this is a lot like docker-pushmi-pullyu[1] (which I wrote), except docker-pushmi-pullyu is a single relatively-simple shell script, and uses the official…",{"value":205,"source":50,"evidence":206},"Spegel",[207],{"id":208,"by":11,"text":209},"44316351","Not a torrent protocol but p2p, check out https:\u002F\u002Fgithub.com\u002Fspegel-org\u002Fspegel it's super cool. I took inspiration from spegel but built a more focused solution to make a…",{"value":211,"source":71,"evidence":212},"Self-hosted registry such as Zot",[213],{"id":214,"by":215,"text":216},"44314638","scott113341","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…",{"comments":218,"answered":219,"key":220},20,6,[221,224,227],{"id":222,"text":223},"44324712","Hey Solomon, thank you for sharing your thoughts, love your work! 1. Yeah agreed, it's a bit of a mess that we have at least three different file system layouts for images and…",{"id":225,"text":226},"44315319","That's a valid concern. You can very easily give it whatever name you like. Docker looks for `docker-COMAND` executables in ~\u002F.docker\u002Fcli-plugins directory making COMMAND a…",{"id":228,"text":229},"44324775","You're the OG! Hats off, mate. It's a bummer docker still doesn't have an API to explore image layers. I guess their plans to eventually transition to containerd image store as…",{"commenters":231,"max_depth":33,"maker_replies":218,"first_comment_mins":232,"lifespan_hours":233},103,27,208,[235,239,241,243,247,250,254,256,260,263,265,268,271,274,278,279,282,284,288,290,294,295,298,301,304,307,310,313,316,319,321,324,327,331,334,337,341,343,347,350,353,357,359,362,365,367,369,371,374,376,378,380,382,384,386,388,390,393,396,398,400,402,405,410,412,416,418,422,424,427,429,433,436,438,440,442,445,447,450,452,454,457,460,463,466,469,473,476,478,479,482,485,488,492,494,496,498,501,503,507,510,512,514,515,517,519,521,523,524,527,530,532,536,539,542,544,546,548,550,552,554,556,558,560,562,566,567,571,575,579,584,585,588,590,592,594,598,602,606,608,611,614,617,620,622,625,627,629,631,634,636,638,640,642,644,647,649,651,653,656,658,660,662,666],[236,42,45,237,238,42],"44323506","project\u002Fpositive\u002Fidea","shykes",[222,42,42,240,11,18],"maker\u002Fneutral\u002Fidea",[74,18,45,242,75,42],"project\u002Fpositive\u002Fdesign",[244,18,42,245,246,42],"44314604","other\u002Fneutral\u002Fnone","EricRiese",[248,18,42,245,249,42],"44320863","causasui",[251,18,40,252,253,42],"44314789","project\u002Fneutral\u002Fdesign","gchamonlive",[225,18,42,255,11,18],"maker\u002Fneutral\u002Fdesign",[257,18,18,258,259,42],"44320738","project\u002Fcritical\u002Fdesign","whalesalad",[261,18,18,258,262,42],"44314848","someothherguyy",[264,18,18,258,75,42],"44315063",[266,18,42,245,267,42],"44319345","rollcat",[269,18,42,245,270,42],"44320391","bobbiechen",[272,18,42,245,273,42],"44320991","danillonunes",[275,276,45,237,277,42],"44322119",2,"richardc323",[228,276,42,240,11,18],[280,276,42,245,281,42],"44326453","cik",[162,40,40,283,163,42],"project\u002Fneutral\u002Fnone",[285,40,40,286,287,42],"44315048","project\u002Fneutral\u002Fexecution","0x457",[289,40,42,286,11,18],"44315268",[291,40,40,292,293,42],"44318954","project\u002Fneutral\u002Fperformance","dirkc",[82,38,45,237,83,42],[296,38,42,245,297,42],"44315630","password4321",[299,38,42,245,300,42],"44319912","dreis_sw",[302,38,42,245,303,42],"44322360","ezekg",[305,45,45,237,306,42],"44316450","amne",[308,45,42,245,309,42],"44316479","maccard",[311,45,42,245,312,42],"44337068","forix",[314,219,45,237,315,42],"44314399","lxe",[317,219,42,245,318,42],"44314441","nodesocket",[320,219,42,245,315,42],"44320282",[322,219,42,245,323,42],"44314618","vhodges",[325,219,42,245,326,42],"44321965","byrnedo",[328,219,42,329,330,42],"44323226","commenter\u002Fneutral\u002Fnone","benwaffle",[332,219,42,333,11,18],"44315417","maker\u002Fneutral\u002Fnone",[335,33,45,237,336,42],"44314955","modeless",[338,33,18,339,340,42],"44315047","project\u002Fcritical\u002Fidea","TheRoque",[342,33,40,292,75,42],"44315094",[344,33,45,345,346,42],"44315665","project\u002Fpositive\u002Fperformance","isoprophlex",[348,33,42,329,349,42],"44316158","throwaway290",[351,33,42,245,352,42],"44316773","authorfly",[354,33,42,355,356,42],"44324210","commenter\u002Fneutral\u002Fperformance","francislavoie",[214,358,42,245,215,42],8,[360,358,42,245,361,42],"44315667","stroebs",[113,363,40,364,114,42],9,"project\u002Fneutral\u002Fidea",[366,363,42,333,11,18],"44315361",[201,368,40,364,202,42],10,[370,368,42,329,202,42],"44319559",[372,368,40,283,373,42],"44320936","westurner",[375,368,42,329,202,42],"44328629",[377,368,42,329,373,42],"44338927",[379,368,42,245,373,42],"44339020",[381,368,40,364,202,42],"44328525",[383,368,42,240,11,18],"44332853",[385,368,45,237,202,42],"44338493",[182,387,40,283,183,42],11,[389,387,40,292,202,42],"44319744",[391,387,18,339,392,42],"44320198","pbh101",[394,387,42,329,395,42],"44320724","akovaski",[397,387,18,339,392,42],"44324397",[399,387,42,329,202,42],"44328117",[401,387,42,329,392,42],"44333687",[403,387,45,237,404,42],"44321814","tontony",[406,407,40,408,409,42],"44319102",12,"project\u002Fmixed\u002Fdesign","dboreham",[411,407,42,255,11,18],"44324845",[413,414,45,237,415,42],"44315091",13,"jokethrowaway",[93,417,45,237,94,42],14,[419,420,40,364,421,42],"44314290",15,"bradly",[423,420,42,333,11,18],"44315478",[425,420,45,237,426,42],"44319543","christiangenco",[175,428,45,345,176,42],16,[430,431,40,364,432,42],"44325761",17,"sushidev",[434,431,42,435,202,42],"44329237","commenter\u002Fneutral\u002Fidea",[101,437,45,237,102,42],18,[132,439,40,364,133,42],19,[441,439,42,333,11,18],"44314249",[443,439,40,364,444,42],"44314283","fardo",[446,439,40,364,133,42],"44314317",[448,439,40,286,449,42],"44314474","baobun",[451,439,40,364,133,42],"44314527",[453,439,42,240,11,18],"44315461",[455,439,40,286,456,42],"44316813","djfivyvusn",[458,439,40,364,459,42],"44315975","jillesvangurp",[461,439,40,364,462,42],"44317985","felbane",[464,218,45,237,465,42],"44315663","MotiBanana",[467,218,42,468,11,18],"44316348","maker\u002Fpositive\u002Fnone",[470,471,42,245,472,42],"44314491",21,"esafak",[474,471,42,245,475,42],"44314521","throwaway314155",[477,471,42,245,472,42],"44321913",[147,37,40,364,148,42],[480,37,42,245,481,42],"44314348","yibers",[483,37,42,245,484,42],"44314422","NewJazz",[486,37,42,245,487,42],"44322613","jlcummings",[489,490,45,237,491,42],"44315068",23,"mountainriver",[493,490,42,333,11,18],"44315428",[151,495,40,364,152,42],24,[497,495,42,292,11,18],"44314731",[499,495,40,292,500,42],"44316100","pragmatick",[97,502,45,345,98,42],25,[504,505,45,237,506,42],"44314288",26,"dzonga",[508,505,40,364,509,42],"44314483","rudasn",[511,505,40,364,426,42],"44319561",[513,505,42,333,11,18],"44315524",[78,232,45,237,79,42],[86,516,45,237,87,42],28,[171,518,40,286,172,42],29,[520,518,40,292,356,42],"44324293",[522,518,45,345,172,42],"44324309",[190,31,40,364,191,42],[525,31,40,364,526,42],"44314359","Snawoot",[528,31,42,245,529,42],"44317071","dobremeno",[531,31,42,329,183,42],"44319556",[533,534,40,364,535,42],"44314464",31,"remram",[537,534,40,286,538,42],"44314647","selcuka",[540,534,42,245,541,42],"44314962","mdaniel",[543,534,42,329,202,42],"44319492",[545,534,40,252,535,42],"44323802",[547,534,42,329,538,42],"44323921",[549,534,42,329,535,42],"44324488",[551,534,42,286,11,18],"44324834",[553,534,42,329,202,42],"44328355",[555,534,42,333,11,18],"44316429",[557,534,40,252,535,42],"44329162",[121,559,45,237,122,42],32,[561,559,40,364,404,42],"44321695",[563,564,45,237,565,42],"44315316",33,"cultureulterior",[208,564,42,364,11,18],[568,569,45,237,570,42],"44317635",34,"hoppp",[572,573,45,237,574,42],"44316509",35,"victorbjorklund",[576,577,45,237,578,42],"44316887",36,"alibarber",[580,581,45,582,583,42],"44315967",37,"project\u002Fpositive\u002Fnone","peyloride",[139,16,40,252,140,42],[586,16,40,364,587,42],"44315606","brirec",[589,16,40,364,262,42],"44315871",[125,591,40,283,126,42],39,[593,591,42,364,11,18],"44315770",[595,596,45,582,597,42],"44316370",40,"bflesch",[599,600,45,582,601,42],"44314660",41,"isaacvando",[603,604,42,245,605,42],"44315962",42,"politelemon",[607,604,42,245,456,42],"44316708",[609,604,42,245,610,42],"44317266","v5v3",[612,604,42,245,613,42],"44317044","yrro",[615,604,42,245,616,42],"44317500","cyberax",[618,604,42,245,619,42],"44317779","lillecarl",[621,604,42,245,616,42],"44318074",[623,604,42,245,624,42],"44318182","lloeki",[626,604,42,245,616,42],"44319122",[628,604,42,245,624,42],"44325681",[186,630,18,339,187,42],43,[632,630,40,364,633,42],"44317858","kosolam",[635,630,42,329,187,42],"44320179",[637,630,42,329,172,42],"44320457",[639,630,42,329,187,42],"44322525",[641,630,42,329,172,42],"44323576",[155,643,40,292,156,42],44,[645,643,40,292,646,42],"44314454","rgrau",[648,643,40,292,538,42],"44314605",[650,643,40,292,538,42],"44314642",[652,643,40,364,163,42],"44314973",[654,643,42,245,655,42],"44315491","travisgriggs",[657,643,42,245,297,42],"44315648",[659,643,42,245,456,42],"44316828",[661,643,42,252,11,18],"44315631",[663,664,40,283,665,42],"44318559",45,"Aaargh20318",[667,668,40,364,669,42],"44318550",46,"ajd555",[],[672,677,681,686,691,695],{"id":673,"name":674,"points":675,"category":676},"44309320","Workout.cool",827,"consumer_social",{"id":678,"name":679,"points":680,"category":20},"44293260","Chawan",387,{"id":682,"name":683,"points":684,"category":685},"44292103","Canine",320,"infrastructure",{"id":687,"name":688,"points":689,"category":690},"44256765","Tritium",312,"productivity",{"id":692,"name":693,"points":694,"category":20},"44306041","Lstr",227,{"id":696,"name":697,"points":698,"category":699},"44284871","Zeekstd",214,"languages",false,"v2",{"id":703,"name":5,"line":6,"ai":700,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":704,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":705,"url":9,"mix":706,"praise":70,"objection":106,"sub":21},44314085,[24,25,26,27],"5115355035333315553353544543355535001333",[31,32,18,33],1794036676969]