Поиск графического интерфейса Docker
Докер все, но симпатичный; давайте попробуем это исправить. Вот краткое изложение некоторых параметров графического интерфейса, доступных для Docker.
Я люблю Докер. Сначала мне показалось немного глупым заниматься мелкомасштабной реализацией, например, моей домашней установкой, но после того, как я научился ее использовать, я влюбился. Стандартные функции, безусловно, выгодны. Замечательно не беспокоиться о том, что зависимости одного приложения будут зависеть или конфликтовать с зависимостями другого. Но большинство приложений хорошо играют с другими, а системы управления пакетами поддерживают порядок. Так почему я запускаю docker вместо apt-get install? Индивидуальные настройки системы.
С Docker у меня может быть три одинаковых приложения, работающие рядом. Они даже могут использовать один и тот же порт (внутри) и не конфликтовать. Мой торрент-клиент может жить в сети с принудительной VPN, и мне не нужно беспокоиться о том, что он каким-то образом «утечет» из моих личных данных IP. Черт, я могу запускать приложения, которые работают только на CentOS, на моем сервере Ubuntu Docker, и это просто работает! Короче говоря, Докер потрясающий.
Я просто хотел бы вспомнить все команды.
Не поймите меня неправильно, я знаком с Докером. Я использую его для большинства моих потребностей сервера. Это мой первый опыт при тестировании нового приложения. Черт, я преподавал целый курс по Docker для CBT Nuggets (моя дневная работа). Проблема в том, что Docker работает так хорошо, что мне редко приходится с ним взаимодействовать. Итак, мой буфер FIFO заполняется, и я забываю простые параметры командной строки, чтобы заставить Docker работать. Кроме того, поскольку мне нравятся диаграммы и графики, я решил установить графический интерфейс Docker. Это было что-то вроде приключения, поэтому я решил поделиться своими подробностями моего опыта.
Мои ожидания GUI
Есть некоторые вещи, которые меня не особо интересуют в GUI. Как ни странно, одним из наиболее распространенных применений людей для визуального интерфейса является возможность создания контейнера Docker. Я на самом деле не возражаю против использования командной строки при создании контейнера, потому что обычно требуется 5–10 попыток и настройка, прежде чем я получу его так, как я хочу. Поэтому я хотел бы иметь по крайней мере следующие функции:
- Визуальное расположение всех контейнеров, независимо от того, запущены они или нет.
- Способ запуска / остановки / удаления контейнеров.
- Возможность переименовывать запущенные контейнеры, потому что я всегда забываю называть их, и я устал видеть "chubby_cheetah" для имен контейнеров.
- Способ легко изменить политику перезапуска, поэтому, когда я, наконец, получу правильный контейнер, я могу иметь его --restart = всегда.
- Покажите некоторую статистику о системе и отдельных контейнерах.
- Читай логи.
- Работа через веб-интерфейс, поэтому я могу использовать его удаленно.
- Будь контейнером Docker сам!
Мой список потребностей довольно прост, но, как ни странно, многие GUI оставили меня без внимания. Поскольку желания у всех разные, я перейду к самым популярным вариантам, которые я пробовал, и упомяну некоторые плюсы и минусы.
Kitematic
У него странное название, но Kitematic существует уже очень давно. Он фактически был официально принят Docker, и теперь он является частью Docker Toolkit. Это довольно простой интерфейс, но простота иногда является бонусом, потому что найти то, что он может сделать, просто.
Если вы проверите Сайт Kitematic может сложиться впечатление, что он работает только на OS X или Windows, но, к счастью, это не так. Если вы направляетесь к GitHub репозиторий вы также найдете установщик Ubuntu.
Kitematic хорош, но это нативное приложение, а не веб-интерфейс. Это выглядит красиво (рис. 1), но я часто бываю на чужом компьютере, когда я в отъезде, поэтому мое сетевое требование действительно жизненно необходимо. Тем не менее, если вам не нужен веб-интерфейс и вам нужен поддерживаемый, чистый графический интерфейс, Kitematic довольно изящен. Это довольно просто, но опять же, это не плохо.
Рисунок 1. Kitematic выглядит невероятно красиво, но, к сожалению, это не веб-приложение (изображение через kitematic.com ).
Плюсы:
- Официально поддерживается Docker.
- Очень понятный и простой интерфейс.
Минусы:
Док-станция
DockStation - еще одно решение, не основанное на веб-технологиях, но я хотел упомянуть об этом, потому что оно очень мощное. У него отличный, чистый интерфейс (рисунок 2), но, опять же, он требует установки на локальном компьютере. У него есть поддержка доступа к удаленному серверу Docker через SSH, но это по-прежнему означает локальную установку приложения, а конфигурация не проста.
Рисунок 2. DockStation также отлично выглядит, но он проприетарный и требует немало усилий для начала работы. Кроме того, это не веб-интерфейс (изображение через dockstation.io ).
Кроме того, DockStation является закрытым исходным кодом. Это само по себе не было бы для меня показом, но, если добавить к разочарованию установки собственного приложения, этого достаточно, чтобы отключить меня. Тем не менее, это бесплатно для личного использования, и особенно если вы разработчик, DockStation может быть очень привлекательным. Есть много скриншотов на Веб-сайт если вы хотите проверить это.
Плюсы:
Минусы:
- Не с открытым исходным кодом.
- Не в сети.
Portainer
Самым близким, что я нашел к идеальному решению, был Portainer. Он основан на сети, работает как контейнер Docker, и его легко начать. На первый взгляд, это кажется довольно простым, но я был поражен, увидев, что есть даже многоуровневая пользовательская система, что означает, что вы можете предоставить различным пользователям разные уровни доступа к инфраструктуре Docker.
Portainer, похоже, не ведет статистику производительности за прошлый период, но у него есть монитор в реальном времени (рисунок 3), который работает в крайнем случае, если я пытаюсь устранить неполадки в работе контейнера. Я немного удивлен, обнаружив, что функция шаблона приложения (рисунок 4) - одна из моих любимых вещей для игры. Я знаю, что мои первоначальные требования не включали способ быстрого развертывания контейнеров, но захват быстрого шаблона и нажатие кнопки развертывания удивительно просты, и я все чаще играю с контейнерами. Дело не в том, что развертывание контейнера через командную строку сложно, но это много печатает; в то время как с Portainer я просто могу нажать «развернуть», и это все для меня. Это кажется глупым, но все, что заставляет меня играть с технологиями, - это хорошо.
Рисунок 3. Мне нравится видеть графики, и если контейнер ведет себя плохо, такой взгляд на производительность в реальном времени очень полезен.
Рисунок 4. Обычно я не люблю подобные шаблоны, но я чувствовал себя как ребенок в кондитерской!
Если вам нужен довольно простой интерфейс для вашего работающего сервера Docker, Portainer отлично подходит. Он может запускать и останавливать контейнеры, редактировать существующие запущенные приложения (и даже переименовывать их, что я всегда должен делать), и это отличный способ очистить вашу систему после сеанса добавления / удаления изображений. Например, вы можете посмотреть на вкладку томов (рисунок 5) и быстро определить тома, больше не связанные с работающим контейнером. Это то, о чем я никогда не задумываюсь, поэтому я сидел там с сотнями заброшенных томов.
Рисунок 5. Не то, чтобы заброшенные тома занимали много места в моей системе, но я ненавижу оставлять все вокруг. Portainer сделал уборку легкой.
Моя система взаимодействия с работающими контейнерами - это Portainer. Он делает то, что мне нужно в крайнем случае, запускается через веб-браузер, и у него достаточно функций, которые стоит сохранить. Это открытый исходный код, и он активно развивается. Я очень рекомендую это. На самом деле, одна из лучших особенностей Portainer - это простота настройки. Следующий однострочный файл загрузит образ, запустит контейнер и предоставит вам доступ к интерфейсу через порт 9000:
docker run -d -p 9000: 9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ portainer / portainer
Я не раскрываю это в интернете, но когда я в пути, быстрая команда ssh с переадресацией порта дает мне полный доступ к экземпляру Portainer. Благодаря системе сокетов UNIX Portainer напрямую взаимодействует с Docker, и нет никаких изменений конфигурации системы, которые можно было бы выполнить для достижения цели. Эта строчка выше буквально все, что нужно. (И для меня первым делом в графическом интерфейсе является изменение имени контейнера, потому что я всегда забываю делать это при его создании!)
Ребята из Portainer.io предлагают полностью функциональную демоверсию Вот (логин admin: tryportainer), который даст вам представление о том, что он может сделать, не развертывая его в своей среде. Признаюсь, мне не повезло, когда я запустил демо-версию (она часто зависает от меня), так что может быть проще раскрутить быстрый контейнер и проверить его на своей собственной системе. Тем не менее, предлагать демо это хорошо.
Плюсы:
- Веб-.
- Простая настройка (работает в контейнере).
- Легко ориентироваться.
- Управление пользователями.
Минусы:
- Не могу понять, как изменить политику перезапуска для контейнеров!
Докли странный кузен
Я был бы упущен, чтобы не упомянуть еще один интересный вариант, который технически представляет собой графический интерфейс, хотя и не в традиционном смысле. Dockly - это GUI, но это текстовый GUI на основе Curses. По сути, если бы Кайл Ранкин искал GUI-интерфейс для Docker, скорее всего, Dockly был бы его первым выбором. Черт возьми, он даже немного похож на Матта (рис. 6).
Рисунок 6. Dockly - не самый красивый графический интерфейс для Docker, но он делает то же самое, что и другие GUI, и полностью функционирует в окне терминала. Это стоит посмотреть.
По общему признанию, навигация GUI через клавиатуру поначалу немного обременительна. Мне потребовалось некоторое время, чтобы понять, что действительно может сделать Докли. Однако, как только я привык к интерфейсу, я должен признать, что он довольно хорош. Из всех систем управления это, безусловно, самый простой способ подключения, поскольку он работает в окне SSH.
Для получения инструкций о том, как настроить и использовать Dockly, перейдите к Страница GitHub , Он использует node.js, который в прошлом был проблемой для меня в отношении конфликтующих версий. Но поскольку это Docker, его, конечно, можно запускать в своем собственном контейнере, убедившись, что у него есть точная версия, в которой он нуждается.
Плюсы:
- Работает из контейнера.
- Легко настроить.
- Кайл Ранкин-дружественный (только окно терминала).
Минусы:
- Ограниченная возможность модификации контейнеров.
Мои последние мысли
Вы знаете, как иногда вы ищете в интернете имя конкретного актера, а затем три часа спустя обнаруживаете, что смотрите на YouTube видео о кошках, которых пугают огурцы? Что ж, мое погружение в мир графических интерфейсов Docker было чем-то вроде этого. Portainer был одним из первых, которые я попробовал, и он оказался лучшим. Тем не менее, я потратил более пяти часов на установку и настройку различных графических интерфейсов, от ныне несуществующей верфи до чрезвычайно продвинутого ранчера. Многие из них были нативными приложениями, для некоторых требовались дополнительные виртуальные машины, установленные локально, чтобы работать, и большинство из них были более сложными, чем я хотел.
Я искренне желаю, чтобы Kitematic был веб-интерфейсом, потому что его интеграция с Docker приятна, а его упрощенный вид облегчает управление простой инфраструктурой. Если вы все время работаете на одном и том же компьютере, проверка варианта с собственным графическим интерфейсом может стоить вашего времени. В конце концов, несмотря на то, что у меня запущены Portainer и Dockly, я на самом деле ловлю себя на своем сервере Docker и выполняю команды вручную. Это может быть громоздко, и я не всегда помню конкретные аргументы. Тем не менее, найти ответ так же легко, как и войти в GUI.
Но графики - графики очень приятно смотреть!
Так почему я запускаю docker вместо apt-get install?