Добавить в корзинуПозвонить
Найти в Дзене
Что если не нашел?!

Portainer для чего?

Portainer - что это? Почитать что это можно тут https://portainer.io/, но опишу немного: Portainer — универсальная платформа управления контейнерами. Поддержка Portainer нескольких кластеров и устройств означает, что вы можете управлять средами любого типа и в любом месте (Docker и Kubernetes, работающими на ноутбуках для разработки, в вашем ЦОД, в облаке или на периферии), и мы не требуем от вас запуска какого-либо определенного дистрибутива Kubernetes. Мы предоставляем унифицированный пользовательский интерфейс, который значительно ускоряет внедрение гибридных и многооблачных развертываний, повышает эффективность управления развертываниями пользователями и даже позволяет вам объединять конечные точки Docker и Kubernetes на одной панели управления. Первый раз я использовал, мне было непонятно зачем, а потом я втянулся, удобный интерфейс, легко можно развернуть контейнер, пересобрать контейнер не влезая на сервак в командруню строку, да минус один платный софт, но нужно платить за то ч

Portainer - что это? Почитать что это можно тут https://portainer.io/, но опишу немного:

Portainer — универсальная платформа управления контейнерами.

Поддержка Portainer нескольких кластеров и устройств означает, что вы можете управлять средами любого типа и в любом месте (Docker и Kubernetes, работающими на ноутбуках для разработки, в вашем ЦОД, в облаке или на периферии), и мы не требуем от вас запуска какого-либо определенного дистрибутива Kubernetes.

Мы предоставляем унифицированный пользовательский интерфейс, который значительно ускоряет внедрение гибридных и многооблачных развертываний, повышает эффективность управления развертываниями пользователями и даже позволяет вам объединять конечные точки Docker и Kubernetes на одной панели управления.

Первый раз я использовал, мне было непонятно зачем, а потом я втянулся, удобный интерфейс, легко можно развернуть контейнер, пересобрать контейнер не влезая на сервак в командруню строку, да минус один платный софт, но нужно платить за то что придумали другие для удобства и им нужно на что-то кушать и развиваться)) Л - логично!

Развернем его на Ubuntu, как я пробовал его развернуть на FreeBSD прикреплю ссылочку тут.

И так имеем:

  • Ubuntu 24 создадим на виртуалке вдадим ему для начала 8 процов, 8гб оперативы, под мои цели SSD будет 300гб.
  • Portainer будет Community Edition2.27.1 LTS

Ставим операционку Ubuntu 24 благо у нас все есть, виртальные машины смотрят через Mikrotik Cloud Hosted Router - кому будет интересно как это развернуть на одном сервере + прокинуть Mikrotik Cloud Hosted Router, так что бы наш виртуальный Mikrotik смотрел внешку, а все виртаулки через порты или еще что-то имели выход через Mikrotik то пишем в коментах. в общем вкратце Задача есть один сервер виртализации, но не хочется его выгонять на прямую, темболее что на нам будут вирталки которые будут как и для внешки так и для внутреннего использования, а денег и места в ЦОД не хватает на размещение роутера, тогда как решить?

Но отложим это отступление.

Сейчас мы накатили Ubuntu 24, теперь простыми манипуляциями ставим mc, а перед этим синхранизируем время и апдетимся

sudo apt update (1.1)

sudo apt upgrade (1.2)

sudoapt install -y chrony (2.1)

sudotimedatectl set-timezone Europe/Moscow (2.2)

sudosystemctl enable chrony(2.3)

тестим date ответ Mon Mar 10 02:03:15 PM MSK 2025 (2.4)

sudo apt install -y mc (3)

* -y значит мы заранее соглашаемся на все вопросы "да"

Midnight Commander (mc) - консольный файловый менеджер для Unix-подобных операционных систем. Вы сами увидете, это же удобно!

Не забываем 3 простых правила, но лично для меня))):

  1. Установил систему, накати апдейты;
  2. Установил апдейты, установи синхранизацию времени;
  3. Вкатил первые два, накати mc.

Так теперь у нас все готово, нужно первым что сделать наверное если нет реп докер, что лично я уже мало где встречал даже при устаноке Ubuntu, по умолчанию можно вкатить Docker, просто поставить галочку, но это не наш метод!

Нам что-то потребуется из документации, а именно:

curl - стоит по умолчанию, ну прям редко когда его нет, это значит что? Вы криво накатили систему.

software-properties-common — пакет для управления ПО с помощью скриптов

ca-certificates — содержит информацию о центрах сертификации

apt-transport-https — необходим для передачи данных по протоколу HTTPS

установим sudo apt install curl software-properties-common ca-certificates apt-transport-https -y

Можно поискать репу Docker /etc/apt/sources.list.d/ если ее нет то подкинуть:

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable"| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

После этого обязательно sudo apt update - это обновит репы но не саму систему, не путайте с sudo apt upgrade

Ну и установим сам Docker sudo apt install docker -y (иногда sudo apt install docker-ce -y, если подкинули пакет)

Далее проверям версию:

docker -v Вывод к примеру: Docker version 28.0.1, build 068a01e

docker compose version вывод к примеру: Docker Compose version v2.33.1

Ну вроде все, ан нет, мы ж разворачиваем контейнер с Portainer, тогда едем в sudo mc - пароль, открывается окно, создаем в коталоге где у нас выделено место под контейнеры папку обычно я делаю папку /docker/ и в не создаю 2 подпапки одна /dev - для разработки которые не боевые /work - уже боевые машинки, почему так, а все просто разрабы отрабатывают свои навыки на dev, если все ок, то переносят на work, двойная Б, почему, а потому что первая Б - безопасность и вторая Б - бекапы.

Приступим в к поднятию.

Все любят поднимать через руки ну и офф описание тоже говорит подними руками (https://docs.portainer.io/start/install/server/docker/linux):

  • docker volume create portainer_data
  • docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

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

Ну мы ж продвинутые создадим docker-compose.yml в нашей папке /work/twportainer/

version: "3.3"

services:

twportainer:
image: portainer/portainer-ce:latest
container_name: twportainer
environment:
- TZ=Europe/Moscow
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/twportainer/portainer_data:/data
ports:
- "8000:8000"
- "9443:9443"
restart: always

Тут мы не будем прятать, мы спряем порты если захотим через наш Mikrotik

и так запускаем docker compose up -d

Описание параметров:

  • version: "3.3": Указывает версию Docker-compose.
  • services: В этой секции описываются запускаемые сервисы.
  • twportainer: Имя сервиса.
  • image: portainer/portainer-ce:latest: Определяет образ, который будет использоваться. latest - последняя версия
  • container_name: twportainer: Назначает имя контейнера, легче его идентифицировать.
  • environment: Позволяет задать переменные окружения. Задаем TZ=Europe/Moscow устанавливает временную зону контейнера, так хорошо бы делать везде.
  • volumes:
    /var/run/docker.sock:/var/run/docker.sock позволяет Portainer взаимодействовать с Docker на вашем хосте;
    /opt/twportainer/portainer_data:/data создает постоянное хранилище данных.
  • ports:
    "8000:8000" и "9443:9443" открывают соответствующие порты для доступа к Portainer. 9443 используется для HTTPS подключения.
  • restart: always: Гарантирует, что контейнер будет автоматически перезапускаться при необходимости, например, после перезагрузки сервера.

А далее переходим https://<ip_или_localhost>:9443 и открывается интерфайс где нужно будет создать логин пароль.

-2