Введение
Немного о Portainer
Portainer – это удобная Open Source система управления Docker контейнерами в Linux и WSL, с его помощью можно управлять локальными и удаленными контейнерами используя Docker API, запускать, останавливать, удалять, просматривать их состояние, само собой создавать новые, управлять образами и сетями.
Portainer достаточно сильно облегчает жизнь, особенно на ранних стадиях изучения Docker
В данной заметке мы с вами будем устанавливать Portainer Community Edition
Установка Portainer Community Edition
Для установки нам потребуется зайти по SSH на ваш сервер под ROOT или использовать SUDO и установленный Docker
Установка производиться в две команды:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Данная команда установит Portainer CE, настроит автозапуск контейнера после перезагрузки и укажет постоянное хранилище для настроек, которые не потеряются при удалении, обновлении или повторном развертывании.
Проверим что все запустилось после установки командой:
docker ps

Как зайти в Portainer?
Portainer CE установлен и доступен в браузере по IP адресу вашего сервера с портом 9443:
https://IP_ВАШЕГО_СЕРВЕРА:9443
Первоначальная настройка после установки
После перехода в браузер по адресу выше, нам будет предложено создать нового пользователя, по умолчанию стоит admin, но вы можете использовать любое другое имя администратора и придумать ввести надежный пароль
(так же на этой странице вы можете восстановить настройки из бекапа, который вы делали ранее)

Выбираем окружающую среду, в нашем случае выбираем использование в локальной среде в которой запущен Portaner

Готово, мы попали в панель управления контейнерами и видим наш узел local
Настройка деталей окружающей среды узла
Нажимаем на карандаш с правой стороны для редактирования

Устанавливаем имя вашей окружающей среды и IP адрес вашего сервера или домен, так же можно указать имя и жмем “Update environment”

Переходим на Dashboard окружающей среды

Разделы локальной окружающей среды

- Stacks – тут находятся стек контейнеры, в который присутствует несколько сервисов, которые работают вместе, например WordPress+MYSQL
Есть возможность запускать в нужной последовательности, например сначала MYSQL потом WordPress.

- Containers – это наши запущенные и остановленные контейнеры, тут производиться манипуляции над ними, можно перезагрузить, удалить, отредактировать, посмотреть логи определенного контейнера, зайти в консоль контейнера, увидеть его данные и IP адрес с портом которые используются и многое другое

- Images – управление образами для наших контейнеров которые скачали с DockerHub или которые создали сами

- Volumes – в данном разделе содержатся виртуальные файловые системы для наших контейнеров

- Networks – управление сетями которые используют наши контейнеры

- GPUs – (новая возможность с версии 2.15) подключение видеокарт для использования их вычислительных мощностей в контейнере
Набор шаблонов App Templates

В данном разделе мы можем развернуть приложение на основе существующих шаблонов, так же есть вкладка Custom Templates в которую мы можем добавить пользовательские списки шаблонов, в конце заметки приведу пример
Развернем WordPress из шаблона в App Templates
Для примера давайте развернем из шаблона WordPress, найдем его в списке и выберем его для настройки

На данном этапе нам предложено ввести название stack и пароль для базы данных жмем Deploy the stack для создания

Готово, можно перейти во вкладку нашего приложения

Отсюда мы можем почитать логи наших контейнеров, подключиться к ним через терминал, остановить, перезапустить, посмотреть присвоенные порты много другое

Далее мы можем кликнуть в этом же разделе на Published Ports нашего контейнера (в моем случае это 49153 порт) и перейти непосредственно к нашему WordPress, где нас встретит типовая установка WordPress

Обновление Portainer
Обновление такое же простое как и установка, для этого выполняем команды ниже
Останавливаем контейнер командой:
docker stop portainer
На данном этапе можете не беспокоится, все настройки будут сохранены, так как мы примонтировали хранилище для данных.
docker rm portainer
Подтягиваем последнюю версию командой:
docker pull portainer/portainer-ce:latest
И снова устанавливаем Portainer:
docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Пользовательский большой набор App Templates шаблонов для Portainer
Переходим в настройки, на интересует вкладка URL и вставляем туда:
https://raw.githubusercontent.com/ntv-one/portainer/main/template.json

Готово, теперь во вкладке App Templates у нас добавилось большое количество новых шаблонов

Заключение
Готово, в этой заметке мы разобрали установку Portainer в две команды и поверхностно прошлись по его возможностям, это достаточно мощный и удобный инструмент управления вашими контейнерами, особенно если вы новичок в работе с Docker
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)