Docker-compose для Portainer

Используемые термины: Portainer , Docker .

Данная инструкция может послужить в качестве шпаргалки по развертыванию Portainer в докер-контейнере.

Файл docker-compose

Создадим каталог, где будем размещать файлы приложения:

mkdir /opt/portainer

Перейдем в него:

cd /opt/portainer

Создадим docker-compose файл:

vi docker-compose.yml

  1. services:
  2. portainer:
  3. image: portainer/portainer-ce:latest
  4. container_name: portainer
  5. hostname: portainer
  6. restart: unless-stopped
  7. environment:
  8. TZ: «Europe/Moscow»
  9. volumes:
  10. — /var/run/docker.sock:/var/run/docker.sock
  11. — ./portainer_data:/data
  12. ports:
  13. — «9000:9000»

Описание сценария

На что стоит обратить особое внимание:

Строки Описание
6 Для развертывания мы берем образ portainer/portainer-ce (community edition) последней версии.
7, 8 Задаем для удобства имя контейнера и hostname.
9 Наш контейнер должен автоматически запускаться, если не был выключен явно.
10 — 11 Задаем системную переменную, указал часовой пояс.
12 — 14 Монтируем внутрь контейнера:
— файл /var/run/docker.sock. Необходимо, чтобы сервис, запущенный в контейнере взаимодействовал с докер-системой хоста.
— каталог portainer_data. Будет находится в текущей папке. Нужен для хранения данных, которые мы не хотим потерять, когда контейнер будет перезагружен.
15 — 16 Делаем так, чтобы наш контейнер слушал на внешнем порту 9000.

* примеры работы с docker-compose можно увидеть в инструкции Шпаргалка по работе с docker-compose .

Запуск и проверка

Запустим контейнер с помощью docker-compose:

docker-compose up -d

Для проверки можно попробовать отправить http-запрос из консоли:

curl http://127.0.0.1:9000

Мы должны увидеть html-разметку. Значит, портал слушает и отвечает.

Идем дальше.

Веб установка

Для работы Portainer необходимо инициализировать настройки. В браузере переходимо на портал, например, http://192.168.100.15:9000 — должна открыться стартовая страница, где от нас потребуется ввести логин и пароль, которые мы хотим использовать для входа в систему под администратором:

Создаем логин и пароль для администрирования portainer

Если мы задержимся с ответом, система выдаст сообщение о необходимости перезапустить сервис:

Если сервис долго запущен до выполнения инициализации, система потребует от нас перезапуска службы

Вводим команду:

docker-compose restart

И возвращаемся к процедуре веб-установки.

Установка и запуск Portainer завершены.

Настройка удаленного docker хоста

Дополнительно рассмотрим добавление в Portainer хоста Docker, который расположен на другом сервере.

В веб-интерфейса переходимо в раздел Environment-related Environments :

Переходим в Environments в левом меню портейнера

Справа сверху кликаем по:

Переходим к добавлению нового окружения

Выбираем Docker Standalone :

Среди списка систем для управления выбираем Docker

Запускаем мастер настройки:

Запускаем инструмент для настройки подключения к удаленногму хосту

Выбираем, что будем подключаться к удаленному docker хосту с помощью агента:

Выбор агента как способ подключения к docker хосту

Мы получим команду для запуска docker-контейнера с агентом:

Команда для запуска docker-контейнера с агентом portainer

Мы можем скопировать и запустить контейнер portainer-агента на хосте, которым хотим управлять:

docker run -d
-p 9001:9001
—name portainer_agent
—restart=always
-v /var/run/docker.sock:/var/run/docker.sock
-v /var/lib/docker/volumes:/var/lib/docker/volumes
-v /:/host
portainer/agent:2.21.3

По умолчанию, portainer предлагает запустить агента на порту 9001. Если на удаленном хосте данный порт уже занят, необходимо поменять строку:

docker run -d
-p 9002:9001

* в данном примере мы сделаем так, что агент будет слушать на порту 9002 .

Однако, для продуктивной среды рекомендую использовать docker-compose. Для начала создадим каталог для хранения файлов агента и перейдем в него:

mkdir /opt/portainer_agent

cd /opt/portainer_agent

Создаем docker-compose файл:

vi docker-compose.yml

services:

portainer-agent:
image: portainer/agent:2.21.3
container_name: portainer-agent
hostname: portainer-agent
restart: unless-stopped
environment:
TZ: «Europe/Moscow»
volumes:
— /var/run/docker.sock:/var/run/docker.sock
— /var/lib/docker/volumes:/var/lib/docker/volumes
— /:/host
ports:
— «9001:9001»

* обратите внимание, что мы указали версию агента, которую нам выдал портал портейнера.

Для запуска контейнера с агентом вводим:

docker-compose up -d

Проверить статус сервиса можно командой:

docker-compose ps -a

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

Настраиваем подключение к агенту portainer с сервера

* в нашем примере мы запустили агента на сервере 192.168.100.16 и порту 9002 .

Кликаем по Connect :

Кнопка завершения настройки агента и подключения нового хоста

Подключение агента завершено.

Список подключенных хостов docker можно посмотреть на домашней странице. Там же можно выбрать нужный для управления его docker инфраструктурой.

EnglishRussianUkrainian