Docker2exe — ваш Docker-образ в одном исполняемом файле
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Представьте, что вам нужно поделиться приложением в Docker-контейнере с коллегой, у которого нет времени (или желания) разбираться с docker-compose и командами CLI. Знакомая ситуация? Именно для таких случаев создан docker2exe — инструмент, который упаковывает ваш Docker-образ в удобный исполняемый файл.
Что это за инструмент?
docker2exe — это утилита на Go, которая:
- Берет ваш Docker-образ
- Превращает его в самостоятельный исполняемый файл
- Позволяет запускать контейнер простым кликом
Причем получатель файла даже не обязан быть Docker-гуру — если у него установлен Docker, всё заработает автоматически.
Как это работает на практике?
Допустим, у вас есть образ alpine:3.9. Всего три команды — и вы получаете исполняемый файл:
docker2exe --name alpine --image alpine:3.9
На выходе — три файла для разных платформ:
dist/
├── alpine-darwin-amd64
├── alpine-linux-amd64
├── alpine-windows-amd64
Получатель просто запускает файл — и docker2exe:
- Проверит наличие образа в системе
- При необходимости скачает его автоматически
- Запустит контейнер
Главные фишки docker2exe
1. Кроссплатформенность
Одна команда — и вы получаете бинарники под все основные ОС. Не нужно беспокоиться о совместимости.
2. Встроенные образы (Embedded Mode)
Для небольших образов можно включить режим встраивания:
docker2exe --name alpine --image alpine:3.9 --embed
В этом случае образ запаковывается прямо в исполняемый файл (как в примере с alpine — итоговый размер менее 10MB). При запуске:
- Если образа нет в системе — загрузит из встроенного архива
- Если есть — использует локальную версию
3. Минимальные требования
На стороне получателя нужен только Docker. Никаких дополнительных зависимостей.
Когда это полезно?
- Демонстрация прототипов — отправили exe-файл, клиент запустил одним кликом
- Распространение внутренних утилит в компании
- Быстрое тестирование — не нужно объяснять коллегам, как запускать контейнер
- Создание портативных версий приложений
Под капотом
Технически docker2exe:
- Использует
docker saveдля экспорта образа - Применяет gzip для сжатия (в embedded mode)
- Генерирует Go-код, который управляет Docker CLI
Интересно, что сам инструмент написан на Go и распространяется как единый бинарный файл — ирония судьбы!
Вывод: стоит ли пробовать?
Если вы:
- Часто делитесь Docker-образами с коллегами
- Хотите упростить процесс запуска для не-технических пользователей
- Работаете с небольшими образами (для больших лучше использовать классический Docker Registry)
...то docker2exe сэкономит вам кучу времени на объяснениях и настройках. Проект с открытым исходным кодом, 1.6k звезд на GitHub — определённо заслуживает внимания.
Для начала попробуйте с простым образом (типа alpine), как в примере выше — и вы сразу оцените удобство подхода. А там, глядишь, и в рабочие процессы внедрите!
