Данная инструкция подходит абсолютно для всех операционных систем семейства Linux, поддерживающих Docker. Нам будут нужны следующие компоненты:
- Среда Portainer CE для развертывания.
- Образ Envoy в формате TAR.
- Немного времени.
Установка Portainer
Установка для всех систем кроме Ред ОС производится из обычного репозитория. Он располагается здесь
Особенности для Ред ОС
Portainer в Ред ОС уже содержится в репозиториях и не надо устанавливать его «со стороны». В этом есть и свои плюсы. Я буду использовать yum вместо dnf, так мне привычнее, тем более что yum в Ред ОС 8 - симлинк на dnf. Удостоверяемся что он есть в репозитории:
sudo yum search portainer
Затем ставим пакет:
sudo yum install portainer-ce -y
Включаем Portainer на автозапуск.
sudo systemctl enable portainer --now
Проверяем работу.
sudo systemctl status portainer
Нажимаем букву q
, чтобы выйти из журнала.
Для всех систем
Если у вас фаерволл, то порты надо пробросить. Это 8000 и 9443.
На iptables пробрасывается так:
Добавляем правило в таблицу NAT для порта 8000
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to :8000
Добавляем правило в таблицу NAT для порта 9443
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9443 -j DNAT --to :9443
Добавляем правило в таблицу фильтрации для порта 8000
iptables -I INPUT -m state --state NEW -p tcp --dport 8000 -j ACCEPT
Добавляем правило в таблицу фильтрации для порта 9443
iptables -I INPUT -m state --state NEW -p tcp --dport 9443 -j ACCEPT
А на firewalld пробрасывается так:
firewall-cmd --permanent --add-port=9443/tcp
firewall-cmd --permanent --add-port=8000/tcp
Настройка Portainer
В графическом режиме заходим в ваш любимый браузер и открываем адрес https://localhost:9443
.
Выполняем.
sudo systemctl restart {portainer,docker}
Это перезагрузит оба сервиса.
Теперь нажимаем клавишу F5
и вводим данные админа. Запоминаем их! Пароль нужен длиной 12 символов.
Нажимаем кнопку «Create user«, затем выбираем локальный сервер нажав на «Default», а затем «local».
Настройка и запуск контейнера
Скачиваем в домашнюю папку образ Envoy с моего зеркала.
wget -O envoy.tar https://adf2d2f0-ebed-4786-ba25-7c8490a17793.selstorage.ru/docker/envoy.tar
Идем в пункт меню «Images» (образы) и нажимаем «Import». Нажимаем кнопку «Select file». Выбираем скачанный TAR. Нажимаем кнопку «Upload» внизу страницы.
Теперь целиком копируем то, что написано в «Image tags». Это ID образа, он сейчас нам будет нужен.
Идем в пункт меню «Containers» (контейнеры).
Нажимаем «Add Container». Убираем «Always pull the image» (всегда загружать образ).
Переключаемся на Advanced Mode (маленькая ссылка). В «image» вставляем то, что скопировали (ID образа).
В самом низу страницы выбираем переключатель «Interactive & TTY». Это позволит читать консоль и логи.
И наконец, нажимаем «Deploy the container» (развернуть контейнер).
Проверяем работает ли все. Нажимаем на имя контейнера в списке.
И открываем «Logs» (Журналы).
Все, видим что наш контейнер успешно работает.
Порты есть в логе, их также можно поменять через Portainer, для этого зайдите: «Duplicate/Edit -> + map additional port» и впишите значения, затем опять нажмите «Deploy the container» и затем «Replace» (заменить).