Как я забросил Docker-CLI и переключился на Portainer — удобство, о котором вы даже и не догадывались!

Веб-панель управления Portainer.

Устали постоянно корпеть в терминале, управляя Docker-контейнерами? Я тоже через это прошёл, пока не открыл для себя Portainer — простой и понятный интерфейс для работы с Docker. Причём он отлично справляется с конфигурациями, где нужна высокая доступность.

Почему мне надоело жить в терминале

Хотя моё знакомство с Docker началось не с CLI (я стартовал с Unraid), опыт работы с терминалом у меня довольно большой. Терминал хорош своей компактностью и универсальностью — навыки применимы в любой системе. Но создавать и управлять контейнерами прямо из командной строки я стал воспринимать всё менее комфортно и интересно.

Запуск Docker-образа LanguageTool через Windows Terminal.

В Docker-CLI всё сводится к терминалу и набиванию команд одну за другой. Конечно, многие скажут: «В этом и смысл!» — но иногда ясный и удобный интерфейс значительно упрощает жизнь.

Мой опыт с Docker начал формироваться на Unraid, где есть удобный графический интерфейс для запуска, остановки и перезапуска контейнеров без необходимости вручную вводить команды. Поэтому, когда я собирался переехать с Unraid-сервера на выделенный, искал более приятное решение, чем стандартный Docker-CLI.

Portainer — простой и удобный интерфейс для любого Docker-окружения

Если вы ещё не слышали про Portainer, это тоже Docker-контейнер, который подключается к специальному Docker-сокету — файловому интерфейсу для управления движком и контейнерами.

Панель управления Portainer с запущенным Docker-инстансом.

Установив Portainer, вы получаете веб-интерфейс для управления Docker прямо из браузера. По умолчанию доступ идёт на порту 9443 (порт 8000 тоже открыт, но он не для веб-доступа).

Веб-интерфейс защищён SSL-сертификатом, который изначально самоподписанный. Я настроил Portainer за обратным прокси, чтобы не видеть предупреждений, но можно просто согласиться на исключение — это безопасно и понятно.

Docker для новичков: что стоит знать

Освойте этот востребованный инструмент для разработки.

Portainer позволяет управлять как существующими, так и новыми Docker-контейнерами. Сам он не обновляется автоматически без изменения конфигурации, но контролирует все процессы в Docker через простой интерфейс.

Вот почему я выбрал Portainer — устал сидеть в терминале и вводить команды, захотел наглядный и удобный инструмент. Запуск занял пару минут, и всё тут же заработало.

Portainer отлично уживается с Docker-CLI

Поскольку Portainer подключается к тому же Docker-сокету, что и CLI, ими можно пользоваться одновременно. Не раз я сталкивался с задачами, которые проще решить через командную строку, чтобы потом продолжить работу в Portainer для регулярного управления.

Интерфейс Portainer для добавления нового Docker-контейнера.

Такое сочетание работает без перебоев. Со временем я научился настраивать сети, тома и другие параметры прямо через Portainer, всё меньше обращаясь к командной строке. Но гибрид CLI и Portainer — отличный способ перейти к удобному управлению без резких перемен.

К тому же Portainer — хороший старт для плавного перехода: можно начать с веб-интерфейса и в любой момент перейти к Docker-CLI, а потом снова вернуться.

Portainer поддерживает и Docker Run, и Docker Compose

В интернете мало подробных гайдов именно по Portainer для развёртывания контейнеров — большая часть документаций ориентирована на Docker-CLI или Docker Compose. Было немного удивительно, ведь в Unraid таких инструкций очень много, а Portainer рассчитывает, что вы разберётесь с командами и настройками сами.

Настройки запуска Docker-контейнера Calibre в интерфейсе Portainer.

К счастью, у меня есть опыт работы с Linux и терминалом, поэтому я без труда переношу команды из Docker Run или Docker Compose в интерфейс Portainer. Для одиночного контейнера там удобная форма с заполнением нужных параметров, переводить команды в графику просто.

Если хочется работать с Docker Compose, в Portainer есть раздел Stacks — это визуальный интерфейс для управления Compose-файлами. Я запускаю там сложные сервисы, где нужен общий сетевой стек и тесное взаимодействие контейнеров.

Правда, я стараюсь минимизировать использование Stacks, потому что контейнеры из стека слабо общаются с остальными, запущенными отдельно. Внутри стека связь же отличная — это удобно для баз данных и связанных сервисов. Для таких проектов, как Immich, я выбираю Stacks, а всё остальное запускаю как отдельные контейнеры — так удобнее управлять.

Важно знать: контейнеры из Stacks отображаются в общем списке Portainer, и многие параметры можно менять без перезапуска всего стека. Но если вы перезапустите стек, все индивидуальные изменения будут отменены и вернутся к настройкам из Compose-файла.

Portainer упрощает настройку кластеров с высокой доступностью

Хотя я пока не пробовал, Portainer позволяет легко создавать Docker-кластеры с высокой доступностью, используя Docker Swarm — это технология, которая позволяет объединять несколько серверов и распределять контейнеры между ними.

Именно ради этой функции я выбрал Portainer. В будущем хочу перевести свои сервисы с мощного энергоёмкого сервера на несколько компактных мини-ПК с отказоустойчивым кластером. Знакомство с Portainer — отличная база для такой миграции.

Пингвин Linux рядом с мини-ПК.

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

Если один сервер выходит из строя, остальные берут на себя его нагрузку — и всё продолжается без сбоев.

Когда «падший» сервер снова подключается, он возвращается в кластер, увеличивая его надёжность. Минимум узлов — три, но на практике их может быть сколько угодно для максимальной устойчивости.

Почему NUC и мини-ПК — отличный старт для домашнего дата-центра

Зачем арендовать сервер, если всё помещается на полке?

В таком кластере можно настроить, на каких именно серверах запускать сервисы. Например, если два из трёх умеют транскодировать видео, Plex можно запускать только на них.

Но если Plex настроен работать лишь на одном сервере с транскодированием, а он выключен — сервис перестанет работать, потому что перенести его на другой сервер нельзя.

Если у вас уже работает Portainer, советую заглянуть в мой список из 10 Docker-контейнеров, которые, на мой взгляд, должен иметь каждый домашний энтузиаст. Там есть как простые проекты вроде Homepage, так и продвинутые — Home Assistant и Tautulli. Каждый найдёт что-то полезное!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Вы также можете найти наши материалы в:

Алекс Бежбакин
Оцените автора
Добавить комментарий