Что такое unregistry?
unregistry — это лёгкий реестр образов контейнеров, созданный Pasha Sviderski, который хранит и обслуживает образы непосредственно из хранилища Docker daemon. Включённая команда docker pussh позволяет отправлять образы прямо на удалённые серверы Docker по SSH, передавая только отсутствующие слои для максимальной эффективности.
- Docker Hub/GHCR: Ваш код становится публичным, или вы платите за приватные репозитории
- Собственный реестр: Ещё один сервис для обслуживания, защиты и оплаты
- Save/Load: Передаёт весь образ, даже если 90% уже существует на сервере
- Удалённая пересборка: Тратит время и ресурсы сервера, отладка производственных сборок
docker pussh myapp:latest user@server — вот и всё! Ваш образ находится на удалённом сервере без настройки реестра, без подписки, без промежуточного хранилища, просто прямая передача отсутствующих слоёв по SSH.
⚡ Ключевые возможности unregistry
🚀 Прямая передача
Отправляйте образы прямо на удалённые серверы по SSH. Без промежуточного реестра, без открытых портов, только эффективная точка-точечная передача.
📦 Дедупликация слоёв
Передаёт только отсутствующие слои, как rsync для образов Docker. Если 90% образа уже существует удалённо, передаётся только 10%.
🔒 Безопасен по дизайну
Использует SSH для аутентификации и транспорта. Нет открытых портов реестра, не требуется дополнительная настройка безопасности.
⚡ Нулевая настройка
Нет реестровой инфраструктуры для обслуживания. Работает с любым сервером, имеющим Docker и SSH-доступ.
🏗️ Готов к CI/CD
Идеален для конвейеров развёртывания. Собирайте локально или в CI, отправляйте прямо на производственные серверы без сложности реестра.
🌐 Мультиплатформенность
Поддерживает мультиплатформенные образы с хранилищем образов containerd. Эффективно развёртывайте образы ARM и x86.
apt upgrade всегда держит вас на последней версии.
📦 Установка из deb.griffo.io
Шаг 1: Добавить репозиторий
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; Unregistry среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
🧩 О варианте extrepo. extrepo — штатный инструмент Debian для внешних репозиториев: он создаёт файл sources и устанавливает ключ подписи, предварительно сверив его с подписанными метаданными. Этот репозиторий зарегистрирован в нём как griffo, а бесплатное навсегда зеркало — как griffo-free, поэтому в Debian (bookworm, trixie, forky и sid) команды выше и есть вся настройка.
extrepo настраивает только файл sources и ключ — учётные данные подписки по-прежнему прописываются в /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu не поддерживается, так как extrepo публикует метаданные только для выпусков Debian: там используйте команды с sudo или от root.
Шаг 2: Установить unregistry
# Install unregistry and docker-pussh
sudo apt install unregistry docker-pussh
# Проверить установку
docker pussh --version# Install unregistry and docker-pussh
apt install unregistry docker-pussh
# Проверить установку
docker pussh --version🎯 Примеры базового использования
Простая отправка образа:
# Build image locally
docker build -t myapp:latest .
# Push directly to remote server
docker pussh myapp:latest user@server.example.com
# That's it! Image is now available on remote serverРасширенное использование:
# Push with SSH key
docker pussh myapp:latest ubuntu@192.168.1.100 -i ~/.ssh/id_rsa
# Custom SSH port
docker pussh myapp:latest user@server:2222
# Specific platform for multi-arch images
docker pussh myapp:latest user@server --platform linux/amd64
# Use in deployment script
docker pussh myapp:$VERSION deploy@prod-server
ssh deploy@prod-server docker run -d myapp:$VERSIONИнтеграция CI/CD:
# GitHub Actions example
- name: Build and deploy
run: |
docker build -t myapp:${{ github.sha }} .
docker pussh myapp:${{ github.sha }} deploy@staging-server🚀 Почему выбирают deb.griffo.io?
- Официальный Debian: Недоступен в официальных репозиториях
- Ручной скрипт: Требует ручных обновлений и управления зависимостями
- Homebrew: Ограничен определёнными платформами
- deb.griffo.io: Последняя версия с автоматическими обновлениями
- ✅ Последние функции: Получите новейшие улучшения интеграции Docker и SSH
- ✅ Полный пакет: Включает как unregistry, так и docker-pussh
- ✅ Автоматические обновления: Пакеты обновляются в течение нескольких часов после релизов
- ✅ Правильная интеграция: Корректно настроен как плагин Docker CLI
- ✅ Множество дистрибутивов: Работает на Bookworm, Trixie и Sid
- ✅ Простое обслуживание: Стандартные команды apt для обновлений
📦 Репозиторий сборки пакетов
Пакеты Debian собираются и поддерживаются автоматически в этих репозиториях GitHub:
- 📠 unregistry-debian - Latest release builds
- 📡 docker-pussh-debian - Latest release builds
🔗 Связанные пакеты
Также доступно из deb.griffo.io:
- lazydocker - Терминальный интерфейс для управления Docker
- uncloud - Многосерверное развёртывание контейнеров
- fzf Fuzzy Finder - Улучшенный поиск команд