Partainer + TrueNAS: Установка и настройка Docker в TrueNAS Scale | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Partainer и TrueNAS: Полное руководство по интеграции контейнеров в систему хранения

28 февраля 2026 6 мин. чтения #TrueCharts #devops #docker #nas #partainer #portainer #truenas #контейнеры
Содержание статьи

Partainer и TrueNAS: Зачем объединять управление контейнерами с системой хранения?

Представь, что у тебя есть мощная система хранения TrueNAS с десятками терабайт данных, и ты хочешь запускать на ней современные приложения в контейнерах. Вместо того чтобы настраивать всё через командную строку, ты можешь использовать Partainer (правильнее Portainer) — визуальную панель управления Docker. Давай разберем, как правильно интегрировать эти два инструмента.

Важное уточнение: В запросах часто встречается опечатка "partainer", но правильное название инструмента — Portainer. В этом руководстве мы будем использовать оба варианта для соответствия поисковым запросам.

Преимущества использования Portainer с TrueNAS

  • Визуальное управление — все операции с контейнерами через web-интерфейс
  • Простота развертывания — установка приложений в несколько кликов
  • Централизованный мониторинг — статус, логи и метрики всех контейнеров в одном месте
  • Безопасность — ролевая модель доступа и политики
  • Интеграция с хранилищем TrueNAS — прямой доступ к datasets и SMB/NFS шарам

Установка Partainer (Portainer) на TrueNAS Scale

TrueNAS Scale, в отличие от Core, использует Kubernetes (k3s) вместо Docker. Но мы можем установить Portainer двумя способами: как Docker-контейнер внутри виртуальной машины или через TrueCharts.

Способ 1: Установка через TrueCharts (рекомендуется)

TrueCharts — это каталог приложений для TrueNAS Scale, который значительно упрощает развертывание.

bash
# 1. Добавляем репозиторий TrueCharts
# В веб-интерфейсе TrueNAS:
# Apps → Manage Catalogs → Add Catalog
# Имя: truecharts
# Репозиторий: https://github.com/truecharts/catalog
# Ветка: main

# 2. Устанавливаем Portainer
# Apps → Available Applications
# Ищем "portainer"
# Нажимаем "Install"

Способ 2: Ручная установка Docker и Portainer

Если нужен прямой доступ к Docker, создаем Ubuntu VM:

bash
# Внутри виртуальной машины:
sudo apt update
sudo apt install docker.io docker-compose -y

# Запускаем Portainer
sudo docker volume create portainer_data
sudo 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
Внимание: При использовании Docker в VM помни о двойном расходе ресурсов — и на гипервизор, и на гостевую ОС. Для production-сред лучше использовать нативный k3s TrueNAS.

Настройка интеграции Portainer с хранилищем TrueNAS

Основная ценность связки partainer truenas — в доступе контейнеров к данным. Настроим монтирование datasets.

Подготовка хранилища в TrueNAS

  1. Создаем dataset для контейнеров: Storage → Datasets → Add Dataset
  2. Название: docker_apps
  3. Тип: Filesystem
  4. Включаем ACL если нужно
  5. Создаем под-datasets для разных приложений

Конфигурация Volume в Portainer

docker-compose.yml
version: '3.8'

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: unless-stopped
    volumes:
      # Монтируем dataset из TrueNAS
      - /mnt/tank/docker_apps/nextcloud:/var/www/html
      - /mnt/tank/docker_apps/nextcloud_data:/var/www/html/data
    environment:
      - POSTGRES_HOST=db
      - POSTGRES_USER=nextcloud
      - POSTGRES_PASSWORD=secure_password
    depends_on:
      - db

  db:
    image: postgres:13
    container_name: nextcloud_db
    restart: unless-stopped
    volumes:
      - /mnt/tank/docker_apps/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=nextcloud
      - POSTGRES_PASSWORD=secure_password

Лучшие практики работы с Partainer на TrueNAS

Безопасность и доступ

Настройка Рекомендация Причина
Пароль администратора Использовать сложный пароль + 2FA Portainer имеет полный доступ к Docker
Сетевой доступ Только по локальной сети/VPN Ограничение внешнего доступа к панели управления
Роли пользователей Создавать отдельные роли для разработчиков Принцип минимальных привилегий

Резервное копирование конфигурации

Настройка автоматического экспорта стеков:

bash
#!/bin/bash
# Скрипт для бэкапа конфигурации Portainer
BACKUP_DIR="/mnt/tank/backups/portainer"
DATE=$(date +%Y%m%d_%H%M%S)

# Экспортируем все стеки через API Portainer
curl -X GET \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://your-truenas:9443/api/stacks \
  > "$BACKUP_DIR/stacks_$DATE.json"

# Бэкап volumes (только метаданные)
docker run --rm \
  -v portainer_data:/data \
  -v $BACKUP_DIR:/backup \
  alpine tar czf /backup/portainer_data_$DATE.tar.gz /data

Типичные проблемы и решения

Проблема: Контейнеры не видят данные TrueNAS

Решение: Проверь права доступа на dataset:

bash
# На TrueNAS host
sudo chown -R 33:33 /mnt/tank/docker_apps/nextcloud  # для Nextcloud (www-data)
sudo chmod -R 755 /mnt/tank/docker_apps/nextcloud

# Или настрой ACL для гибкого управления
setfacl -R -m u:www-data:rwx /mnt/tank/docker_apps/nextcloud

Проблема: Низкая производительность при работе с большими файлами

Решение: Используй NFS вместо bind mounts для больших volumes:

docker-compose.yml
services:
  media_server:
    image: jellyfin/jellyfin
    volumes:
      # NFS монтирование вместо локального пути
      - type: volume
        source: nfs_media
        target: /media

volumes:
  nfs_media:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.100,rw,nfsvers=4
      device: ":/mnt/tank/media"

Альтернативы Portainer для TrueNAS

Хотя partainer — популярное решение, рассмотрим другие варианты:

  • Rancher — для продвинутого управления Kubernetes (идеально для TrueNAS Scale)
  • Docker Compose CLI — для любителей терминала
  • Podman Web UI — если предпочитаешь Podman вместо Docker
  • Нативные TrueNAS Apps — самый простой способ через веб-интерфейс

Часто задаваемые вопросы (FAQ)

Можно ли использовать Portainer на TrueNAS Core?

Да, но только через виртуальную машину, так как TrueNAS Core использует FreeBSD, а не Linux. Установи Linux VM (Ubuntu/Debian) и разверни Docker с Portainer внутри неё.

Как перенести контейнеры с другого сервера на TrueNAS?

Используй встроенные инструменты миграции Portainer:

  1. В старом Portainer: Stacks → Export stack
  2. На TrueNAS: создай новый stack и импортируй docker-compose.yml
  3. Скопируй volumes данные на dataset TrueNAS
  4. Обнови пути монтирования в конфигурации

Portainer или нативные TrueNAS Apps — что лучше?

Portainer дает полный контроль и гибкость, но требует больше ручной настройки. TrueNAS Apps проще в установке и обновлении, но ограничены каталогом TrueCharts. Выбор зависит от твоих навыков и требований.

Как настроить автоматическое обновление контейнеров?

Используй Watchtower или Portainer-режим авто-обновления:

docker-compose.yml
version: '3'
services:
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600 --cleanup

Заключение

Интеграция partainer (Portainer) с TrueNAS открывает мощные возможности для управления контейнеризированными приложениями с прямым доступом к надёжному хранилищу. Начни с простой установки через TrueCharts, поэкспериментируй с монтированием datasets, и постепенно переходи к продвинутым сценариям с несколькими нодами и балансировкой нагрузки. Главное — не забывай про безопасность и регулярные бэкапы конфигурации.

Следующий шаг: После освоения базовой настройки, изучи интеграцию Portainer с Git для CI/CD и настройку мониторинга через Prometheus + Grafana, которые также можно развернуть как контейнеры на твоём TrueNAS.
Поделиться:
Сохранить гайд? В закладки браузера