?Инструментов для работы с Docker существует огромное множество, аналоночно как и статей с подборками решений. Однако на просторах бескрайнего интернета мало доводилось встречаться с краткими обзорными статьями, исходя из которых можно было бы понять какой инструмент мне нужен под конкретную задачу. Данная статья является лишь отражением того с чем довелось столкнуться и поработать лично, поэтому в список попали наиболее часто используемые и популярные инструменты.

  1. DockStation
  2. Portainer
  3. Kitematic
  4. Shipyard

Хотелось сделать пометку, что все эти инструменты затрагивают проблемы по взаимодействию с Docker. Если Вы DevOps и у вас стоит задача развертывания, деплоя, масштабирования и т.п., то вышеописанные решения маловероятно что чем-то смогут вам помочь. Но наверняка вам сможет помочь Rancher.

Итак, начнем:

DockStation — мощный функциональный комбайн для работы с Docker. Главным преимуществом является ориентация на проектную разработку под Docker и работа с Docker Compose.?

Сайт: dockstation.io

Преимущества: Работа с Docker Compose. Нативная поддержка Compose конфигураций, в следствие чего получается полноценная поддержка всех возможностей Docker функционала. Очень богатый функционал в виде возможностей работы над Docker проектами в целом, работа с удаленными нодами, мониторинг ресурсов и многое, многое другое. Очень быстрая и дружелюбная поддержка.?

Недостатки: Закрытый исходный код.

image

Portainer — мощное решение для работы и конфигурирования Docker контейнеров. Представляет из себя Web приложение которое позволяет проводить настройку и манипуляции с контейнерами. В отличие от Kitematic и Shipyard имеет очень богатый функционал, который позволяет проводить очень качественную и полноценную настройку.?

Сайт: portainer.io

Преимущества: OpenSource. Богатый функционал, который позволяет как полноценно настроить проект, так и управлять контейнерами этого проекта. Позволяет подключаться к удаленным нодам и просматривать статистику контейнеров.?

Недостатки: Непродуманный и перегруженный UI. Работа в веб версии для многих может быть неудобной. Неудобен если работа происходит более чем с 1-м проектом.

image

Kitematic — официальное приложение от Docker. Kitematic это OpenSource решение которое было выкуплено компанией Docker в 2015-м году. Основное назначение и применение — управление и конфигурирование отдельных контейнеров. ?

Сайт: kitematic.com

Преимущества: OpenSource. Официальное приложение.?

Недостатки: Приложение очень ограниченное в возможностях. Очень слабое покрытие функционала Docker-а. Неудобен если работа происходит более чем с 1-м проектом.

image

Shipyard — решение для работы с контейнерами Docker. Представляет из себя Web приложение которое позволяет проводить настройку и базовые манипуляции с Docker контейнерами. ?

Сайт: shipyard-project.com

Преимущества: OpenSource. Простой в использовании.

?Недостатки: Так же как и Kitematic имеет ограниченный функционал. Работа в веб версии для многих может быть неудобной. Неудобен если работа происходит более чем с 1-м проектом.?

image

Таблица функций, которые вы наверняка будете использовать:
DockStation Kitematic Portainer Shipyard
Работа с Docker Compose + - - -
Работа с Docker Machine + + + +
Конфигурирование отдельных контейнеров - + + +
Базовые манипуляции с контейнерами (старт, стоп, рестарт, ...) + + + +
Вывод логов контейнеров + + + +
Поиск по логам + - - -
Группировка и поиск контейнеров + - - -
Мониторинг потребления ресурсов + - + +
Работа с удаленными нодами + - + -
Шаблоны приложений - - + -
Работа с кастомными хабами - - + -

Выводы:

Каждый инструмент имеет свои плюсы и минусы. Подходить к выбору инструмента необходимо из поставленной задачи. Если у вас всего один проект в работе и на локальной машине, вам не нужен функционал больше чем запустить, остановить, перезагрузить контейнер, посмотреть его логи или настроить что-то примитивное, то Kitematic будет являться хорошим решением. Если же стоят такие же условия, но нужно это делать на удаленной машине, то для этого вполне подойдет Shipyard.

Если же у вас более серьезные проекты, то остановиться можно на 2-х решениях DockStation и Portainer. По своим функциональным возможностям эти решения очень мощные. Если вы не любите заморачиваться с развертыванием приложений, если на ваших проектах используется Docker Compose или собираетесь переходить на Docker Compose, если вы работаете более чем с 1-м проектом на Docker, если есть необходимость мониторинга состояния и потребления ресурсов как отдельных контейнеров, так и проектов в целом, то однозначно для работы более подходящим решением будет являться DockStation. На случай если работа ведется над одним проектом и вам необходима веб панель и возможность конфигурирования отдельных контейнеров, то Portainer будет являться хорошим выбором.

UPD:
На момент написания статьи произошло неприятное событие. Проект Shipyard официально мертв.

Комментарии (19)


  1. kirill3333
    08.11.2017 15:02

    Не сразу заметил что вы DockStation )))
    А не поделитесь стеком на котором разрабатывали приложение по скриншотам выглядит приятно но так как код закрыт было бы интересно узнать. Местами кажется что там bootstrap на UI


    1. Lemon007 Автор
      08.11.2017 15:07

      Штирлиц еще никогда не был так близок к провалу


      Да, конечно. Electron + React + Redux + Saga. UI сделан с помощью ANT DESIGN.

      P.S. можете подписаться, т.к. в скором времени в свет выйдет один небольшой OpenSource проект, на котором будет базироваться сл. версия DockStation.


  1. l0rda
    08.11.2017 16:54

    Решил потрогать ваш продукт, поставил на мак, пытаюсь подцепиться к серверу в локалке — а оно не понимает ssh-ed25519.


    1. Lemon007 Автор
      08.11.2017 16:56

      Бросьте issue на GitHub, разберемся там.


      1. l0rda
        08.11.2017 17:07

        ок


    1. l0rda
      08.11.2017 17:07

      И на 12" макбук окно не влезает полностью на экран.


      1. Lemon007 Автор
        08.11.2017 17:08

        Это уже есть в issues, как и на Air, в сл. версии будет пофикшено.


  1. SvyatoslavMC
    08.11.2017 17:25

    Начал пробовать по списку. Что-то Kitematic уводит компьютер в BSoD при каждом запуске. Из консоли контейнеры рабочие. Посмотрю другие программы.


    1. Lemon007 Автор
      08.11.2017 17:27

      Не могу сказать что у них там. На macOS вроде работает ок.
      Можете оставить issue у них на GitHub, но правда там поддержка не очень расторопливая.


  1. LiguidCool
    08.11.2017 21:02

    все еще хотелось бы краткого гайда по вашему продукту. :)


    1. Lemon007 Автор
      08.11.2017 22:01

      Все хотим сделать гайд видео, да все как-то руки не доходят, т.к. все время заняты разработкой. Постараемся решить проблему в ближайшее время, а если точнее, то до Нового Года.


  1. VolCh
    08.11.2017 22:27

    Странно, что ни втексте, ни в таблице, нет ни слова про поддержку docker swarm mode. Никто не поддерживает, или настолько базовая вещь, что недостойна упоминания?


    1. Lemon007 Автор
      08.11.2017 22:37

      В разработке и тестировании не видел чтобы он использовался. А работа с контейнерами в Swarm Mode поддерживается всеми инструментами. В DockStation есть только одна особенность, с композом невозможно работать напрямую после деплоя.
      image


      1. VolCh
        09.11.2017 09:52

        В разработке и тестировании не видел чтобы он использовался

        Используется. В конце концов, если он используется в продакшене, то логично использовать то же в разработке и тестировании, пускай и без масштабирования как самих контейнеров, так и нод кластера: по одному контенейру на единственно йлокальной ноде, то есть отличия дева от прода лишь в параметрах конфигурации, а не в ещё одной конфигурации.


        А работа с контейнерами в Swarm Mode поддерживается всеми инструментами.

        Имеется в виду не просто работа с контейнерами, а поддержка всех новых сущностей: стэков, сервисов, секретов, конфигов и т. д.


        1. Lemon007 Автор
          09.11.2017 11:25

          Лозунг на чем прод, на том и дев имеет место быть.
          Только:
          1) Ваши разработчики конкретно используют включенный Swarm mode?
          2) Какие плюсы ловите с того, что Докер будет работать в режиме кластера?
          3) Немного не понял за разные конфиги. Что вы имели ввиду? Или это не ок, что мой Compose конфиг одинаково работает как в включенным Swarm mode так и без него.

          Если вам нужна работа больше чем управление контейнерами, при этом Вам до сих пор не подходит Rancher, то здесь либо DockStation, либо Portainer. У Portainer-а это внедрено и настраивается отдельными пунктами. В DockStation это все поддерживается, т.к. поддерживается композом, но отдельных пунктов по визуализации нету, т.к. в рамках текущих задач это не является актуальным. Да и не могу понять одной детали: для чего это все разработчикам и тестировщикам? У которых задачи по взаимодействию с Докером обычно лежат в плоскости посмотреть что работает, а что нет, запустить/остановить контейнер, подключиться к удаленке, посмотреть логи, посмотреть что жрет ресурсы. Для DevOps-ов я специально оставил сноску в самом начале статьи.


          1. VolCh
            11.11.2017 18:01

            1) Ваши разработчики конкретно используют включенный Swarm mode?

            Да. Почему нет? Одна команда и готов кластер.


            2) Какие плюсы ловите с того, что Докер будет работать в режиме кластера?

            Единые обвязки деплоя, отличающиеся только параметрами (в частности количество реплик — для дев-тест только 1, для прода 3 по умолчанию) и монтированием томов на локальные папки в дев-режиме. Поддержка одних и тех же фич одним и тем же способом.


            3) Немного не понял за разные конфиги. Что вы имели ввиду? Или это не ок, что мой Compose конфиг одинаково работает как в включенным Swarm mode так и без него.

            Ну, есть возможности похожие по результату, но различающиеся по реализации в docker/docker-compose и docker swarm mode. Навскидку сразу же — конфиги и секреты поддерживаются только в кластере (если ничего не пропустил), для обычного режима придётся как-то эмулировать через монтирование локальных файлов. Главное, что в двух местах надо будет писать одно и то же и не забывать менять синхронно, чтобы не получить "а у меня на машине всё работает".


            Разработчикам локальный кластер нужен, чтобы вводить туда свои сервисы, девопсы потом допиливают под особенности эксплуатации, но никто лучше разработчика не знает, какие внешние зависимости нужны тому или иному сервису.контейнеру.


  1. huksley
    09.11.2017 12:04

    Привет! DockStation интересный проект! То что надо т.к. нет нормального средства для работы с Docker Compose проектами!

    Хотелось бы больше инструментов для работы с логами
    — фильтрация
    — поиск по всем логам проекта Docker Compose.
    — «интеллектуальный» фильтр по дате/времени — сегодня/1 мин/5 мин/30 мин/1 час


    1. Lemon007 Автор
      09.11.2017 12:14

      Спасибо.
      1) Что Вы имеете ввиду под фильтрацией? Поиск обычный?
      2) Пока сложно представить как это будет выглядеть, т.к. там будут в перемешку логи с разных контейнеров.
      3) Т.е. вывод последних логов за N времени?


      1. huksley
        11.11.2017 13:12

        1) в принципе да но «прилипающая», т.е. динамически фильтрующая новые строки
        2) их можно тэгировать. если с п.1) совмещено представьте себе это будет бомба! можно найти все записи везде по одному ID например
        3) да. это тоже должна быть прилипающая фишка