Рассматриваем опенсорсные инструменты, способные ускорить, облегчить, улучшить, а иногда и оптимизировать работу с Docker-ом.
Habitus
Еще одни опенсорсные инструменты сборки на основе Docker. Использует файл Dockerfile и build.yml для создания многоступенчатых сборок контейнеров, содержащих любое количество произвольных команд. Каждый шаг в сборке может поддерживать зависимость от какого-то предыдущего шага, чтобы гарантировать правильную работу любой сложной многоступенчатой зависимости. Habitus также поддерживает включение секретов в процесс сборки и делает он это так, что в образе не остается следов.
Dockly
Основная часть работы с Docker выполняется через CLI или терминал. CLI у Docker ничем не примечателен и не отличается от других CLI-программ. Dockly предоставляет полноэкранный интерфейс терминала для Docker, панель мониторинга всех запущенных контейнеров, просмотр логов и статистики использования в реальном времени, а также встроенный шелл.
Dusty
Dusty – Docker-powered среда разработки с MIT лицензией. Предназначена для оптимизации использования Docker Compose или управления контейнерами в Vagrant. Разработчики Dusty утверждают, что их продукт имеет более простую модель спецификаций, чем Docker Compose, умеет обрабатывать изоляцию зависимостей приложений, а также имеет улучшенную (в сравнении с Vagrant) систему обновления. Dusty позволяет выполнять многоступенчатые процедуры и создавать тесты для среды, как часть спецификации.
Whalebrew
Пользователи MacOS должны быть знакомы с Homebrew, специальной системой управления пакетами для MacOS. Whalebrew позволяет устанавливать образы Docker и запускать их непосредственно из командной строки через алиас, как если бы они были локальными исполняемыми файлами. Установка пакетов происходит элементарно:
whalebrew install <имя_пакета>
Пакеты, контролируемые Whalebrew, работают лучше всего. Но теоретически любой образ Docker, который работает через CLI, тоже должен функционировать.
Gockerize
Инструмент с BSD-лицензией разработан под язык Go для создания статических бинарников и упаковки их в контейнеры. Ключевая особенность Gockerize – возможность автоматического применения набора патчей к стандартной библиотеке Golang. Для нормального функционирования Gockerize требуется Go, Docker 1.5+ и оболочка Bash.
Hyper
Данный инструмент, позволяет запускать образы Docker, как на гипервизоре. Hyper использует Docker, QEMU и Xen для достижения своих целей. Разработчики утверждают, что Hyper использует минимальное количество ресурсов (28 МБ), загружается со скоростью контейнера, а не виртуальной машины, обеспечивает высокую производительность и аппаратную изоляцию для приложений. Одним из вариантов использования Hyper является создание многопользовательских приложений на основе Docker.
Dive
Образы Docker похожи на бутерброды в непрозрачной упаковке: вы не всегда знаете, сколько в них слоев, и что внутри. Dive позволяет визуально исследовать слои в образе Docker через интерактивный UI. Вы можете понять, какие ингредиенты присутствуют в каждом слое, а также определить, как каждый слой повлиял на соседние (что добавилось или удалилось). Также можно проанализировать образ на наличие пустого или дублированного пространства и передать результаты в CI-конвейер, чтобы образ с большим количеством пустого места не участвовал в процессе сборки.
Kitematic
Иногда нужен просто GUI. Kitematic дает графический интерфейс для управления контейнерами Docker на MacOS, Ubuntu Linux и Windows. Дополнительные удобства Kitematic: автоматическое предоставление данных об объеме контейнера, встроенный CLI Docker и автоматическая синхронизация состояния в соответствии с изменениями (например, при добавлении новых образов).
Logspout
Мир Unix имеет давнюю традицию применения небольших программ для решения крупных проблем. Logspout применяет ту же философию в управлении журналами контейнеров Docker. Инструмент передает все журналы (stdout и stderr) контейнеров на конкретном хосте в указанную цель. Полученные агрегированные журналы можно просматривать в режиме реального времени, просто читая поток HTTP.
Elsy и опенсорсные инструменты
Elsy описывается как многофункциональный, мультиязычный инструмент сборки, использующий на базе Docker и Docker Compose. Elsy позволяет последовательно создавать репозиторий в разных средах и свести к минимуму инструменты, необходимые для выполнения сборки, независимо от ЯП. Интересная особенность – blackbox-test позволяет тестировать любой контейнер под "боевой" нагрузкой, отражающей фактическое использование на производстве – дайте Elsy контейнер, и он его хорошенько "помучает".
Portainer
Даже самый простой стек Docker может иметь много составляющих: контейнеры, образы, сети, тома, секреты. Отслеживать все это очень сложно. Portainer предоставляет веб-интерфейс для сред Docker, будь то одиночные хосты или кластеры, а также обеспечивает визуализацию всех используемых ресурсов. Управление всеми общими компонентами находятся не более чем в нескольких щелчках мыши. А самое приятное – все это развертывается в существующей инфраструктуре Docker отдельным контейнером.
Docker Compose UI
Docker Compose UI – это проект (с лицензией от MIT), предоставляющий веб-интерфейс для Docker Compose, написанный на Python с использованием платформы Flask. Контейнеры можно запускать как на локальном, так и на удаленном хосте, а сам пользовательский интерфейс Docker Compose доступен для удобства в контейнере Docker. Инструмент поставляется с предустановленными демо-проектами, а некоторые из них даже могут масштабироваться.
Комментарии