Показать HN: Unregistry – «docker push» напрямую на серверы без реестра=news.ycombinator.com=

Показать HN: Unregistry – «docker push» напрямую на серверы без реестра ( github.com/psviderski ) Я устал от этой возни с push-to-registry/pull-from-registry каждый раз, когда мне нужно было развернуть образ Docker.

В некоторых случаях использование полноценного внешнего (или даже локального) реестра — это раздражающие накладные расходы. И если вы задумаетесь, то на любом из ваших хостов с поддержкой Docker уже есть некая форма реестра — собственное хранилище образов Docker.

Поэтому я создал Unregistry [1], который раскрывает хранилище образов Docker (containerd) через стандартный API реестра. Он добавляет команду `docker pushsh`, которая напрямую отправляет образы удаленным демонам Docker через SSH. Он передает только недостающие слои, что делает его быстрым и эффективным.

docker pushsh myapp:latest user@server Под капотом он запускает временный контейнер unregistry на удаленном хосте, отправляет данные на него через туннель SSH и очищает его по завершении.

Я создал его как побочный продукт во время работы над Uncloud [2], инструментом для развертывания контейнеров в сети хостов Docker, и решил, что он будет полезен в качестве отдельного проекта.

Буду рад услышать ваши мысли и варианты использования!

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

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

jlhawn 25 минут назад | [–]
Быстрая и грубая версия:

docker -H host1 image save IMAGE | docker -H host2 image load примечание: это совсем неэффективно (нет сжатия или кэширования слоев)!

nine_k 14 минут назад | | [–]
Отлично. И команда `pussh` определенно заслуживает звания одной из самых элегантных игр слов: легко запоминается, не требует пояснений и отличается от своей родственной стандартной команды всего на одну букву.
nothrabannosir 24 минуты назад | | [–]
В чем разница между этим и skopeo? Это поддержка ssh? Я не очень хорошо знаком с skopeo, простите за невежество

https://github.com/containers/skopeo

yibers 6 минут назад | | [–]
«skopeo», по-видимому, имеет отношение к управлению реестрами, что весьма отличается от этого.
koakuma-chan 34 минуты назад | | [–]
Это действительно круто. Вы поддерживаете или планируете поддерживать docker compose?
psviderski 26 минут назад | | [–]
Спасибо! Не могли бы вы уточнить, какую поддержку вы имеете в виду для docker compose?
fardo 21 минут назад | | | [–]
Я предполагаю, что он имеет в виду «вместо того, чтобы отправлять каждый отдельный контейнер для проекта, можно было бы взять что-то вроде файла compose по списку базовых контейнеров и отправить их все в конечную точку».
Коакума-чан 13 минут назад | | | [–]
Да, толкать все контейнеры по одному было бы не очень удобно.
bradly 18 минут назад | | [–]
Как давний поклонник шеф-повара-соло, это действительно круто.

В настоящее время мне нужно использовать реестр Docker для моих развертываний Kamal. Вы знакомы с ним и устраняет ли это зависимость от сторонних приложений?

armx40 11 минут назад | | [–]
А как насчет использования docker context? Я часто его использую и он отлично работает.
Snawoot 3 минуты назад | | [–]
Как контексты Docker помогают при передаче образа между хостами?
dzonga 18 минут назад | | [–]
это здорово, надеюсь, DHH и ребята, работающие над Kamal, примут это во внимание.

единственная причина, по которой я в конечном итоге не использовал kamal, заключалась в «необходимости» реестра docker. Когда я могу легко отправить dockerfile / compose на свой vps, создать там образ и перезапустить его для развертывания с помощью команды make.

s1mplicissimus 18 минут назад | [–]
очень круто. теперь давайте интегрируем это так, чтобы мы могли делать `docker/podman push localimage:localtag ssh://hostname:port/remoteimage:remotetag` без установки дополнительного программного обеспечения 🙂


Рассмотрите возможность подачи заявки на набор в YC на осень 2025 года! Заявки принимаются до 4 августа

Source: news.ycombinator.com

Leave a Reply

Your email address will not be published. Required fields are marked *