🛠 Домашнее задание
Цель: Закрепить навыки работы с Docker Compose, Nginx и доменами, добавив новый сервис для управления контейнерами через веб-интерфейс.
Portainer — это лёгкий инструмент с веб-интерфейсом для управления контейнерами Docker, Docker Swarm, Kubernetes и другими системами. Он позволяет:
- просматривать список контейнеров, образов, томов и сетей;
- запускать и останавливать контейнеры;
- управлять настройками и переменными окружения;
- просматривать логи и подключаться к консоли контейнеров;
- деплоить приложения по готовым шаблонам.
📚 Документация: https://docs.portainer.io/
📋 Задача
Добавить в существующий проект сервис Portainer , который позволит управлять контейнерами и их настройками через браузер.
🔹 Шаги выполнения
1. Добавить сервис Portainer в docker-compose.yml
portainer:
image: portainer/portainer-ce
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:Описание параметров:
- image — официальный образ Portainer Community Edition.
- container_name — имя контейнера для удобства.
- restart — автоматический перезапуск при сбое или перезагрузке сервера.
- ports — проброс порта 9000 для доступа к веб-интерфейсу (до настройки Nginx).
- volumes — доступ к Docker сокету для управления контейнерами и том для хранения данных Portainer.
2. Привязать subdomain к серверу
Например: portainer.example.com
Для этого в панели управления DNS создайте A-запись, указывающую на IP вашего сервера.
3. Добавить новый конфиг Nginx для домена portainer.example.com
По аналогии с тем, как мы делали для Grafana, настроить проксирование на контейнер Portainer. Это позволит заходить в Portainer по HTTPS и без указания порта.
4. Выпустить SSL сертификат для домена portainer.example.com
Использовать Let’s Encrypt, как мы делали для Grafana, чтобы обеспечить безопасное подключение.
5. Открыть в браузере
https://portainer.example.comПри первом входе:
- Создайте пользователя-администратора.
- Выберите подключение Local для работы с Docker на этом сервере.
✅ Критерии выполнения
- Через интерфейс Portainer видно все запущенные контейнеры проекта.
- Данные Portainer сохраняются между перезапусками контейнера.
- Доступ к Portainer осуществляется по защищённому адресу
https://portainer.example.com.