Synology Virtual DSM в контейнере Docker

Краткая инструкция как запустить Synology Virtual DSM в контейнере Docker, можно даже на VPS

Я уже рассказывал как запустить DSM на VMM, на VirtualBox, на Proxmox и на реальном железе, но в этой статье я расскажу как запустить DSM в контейнере Docker. Docker есть практически везде где есть ядро Linux, а это значит, что такой контейнер DSM можно запустить даже на VPS. Но у этого подхода есть свои нюансы, проблемы и их решения. Все будет рассказано.

Я считаю, что на Synology лучше запускать Virtual DSM в VMM, Это будет намного лучше и практичнее чем в Docker. Но на других линукс серверах данный способ имеет место быть.

Проект Virtual DSM for Docker я нашел на гитхабе. DSM в контейнере Docker обладает некоторыми особенностями и требованиями:

  • Для запуска нужен Docker
  • Требуется поддержка KVM акселератора
  • Минимум 512М ОЗУ (рекомендуется 2Г)
  • Поддерживает проброс дисков
  • Поддерживает проброс GPU
  • Поддерживает обновления
  • Недоступен VMM
  • Нет бесплатных лицензий Surveillance Station
  • Нет возможности зарегистрировать учетную запись Synology
  • Не работает QuickConnect

Я покажу установку DSM в контейнер Docker через Container Manager в реальном Synology. Но по аналогии можно запустить и на любом линуксе и даже на VPS. Для проверки поддерживает ли ваш сервер установку DSM в контейнере Docker введите такие команды:

sudo apt install cpu-checker
sudo kvm-ok

Если ошибки нет, то можно продолжать, если есть ошибка то нужно проверить поддержку виртуализации на вашем сервере.

Теперь в папке docker создайте папку DSM, а в ней пустую папку storage. Откройте Container Manager и создайте новый проект указав имя и папку DSM как исходную

В поле docker-composeюньд нужно вставить такой текст:

version: "3"
services:
  dsm:
    container_name: dsm
    image: vdsm/virtual-dsm:latest
    environment:
      CPU_CORES: "2"
      RAM_SIZE: "2048M"
      DISK_SIZE: "50G"  # Размер диска
      # DISK2_SIZE: "32G"
      ALLOCATE: "N"     # Не резервировать пространство
      # URL: "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" # Default DSM 7.2.1
    devices:
      - /dev/kvm
      - /dev/vhost-net
    cap_add:
      - NET_ADMIN
    ports:
      - 5100:5000
    volumes:
      - ./storage:/storage
      # - ./storage2:/storage2
    restart: on-failure
    stop_grace_period: 1m

Поясню некоторые детали:

  • CPU_CORES – количество выделенных ядер процессора
  • RAM_SIZE – размер ОЗУ
  • DISK_SIZE – размер первого диска
  • ALLOCATE – резервирование пространства на диске
  • URL – устанавливаемая версия vDSM
  • 5100 – порт для подключения к DSM

Так же можно пробрасывать GPU, использовать отдельную сетевую карту или режим macvlan, использовать физические диски и все это описано на странице гитхаба. Я только продемонстрировал, что это работает.

Далее везде жмете вперед ничего не меняя и если все хорошо то должны увидеть Exit Code 0, который означает успешное создание проекта с контейнером DSM

Процесс развертывания может занять какое-то время. Но если вы зайдете на IP-NAS:5100 то увидите такую картинку:

Все хорошо, нужно подождать пока DSM в контейнере Docker развернется и вы увидите окно первоначальной настройки

А когда пройдете все этапы, то получите готовый DSM в контейнере Docker доступный по порту 5100

Кстати, в одном браузер не получится открыть и основной DSM и виртуальный DSM в контейнере Docker. Видимо из-за проблем с файлами cooke

Дальше вы можете обновить DSM, обновить или установить необходимые программы из центра пакетов. В общем действовать на свое усмотрение.

Этот DSM в контейнере Docker отжирает всю котлету оперативной памяти

А если посмотреть какие процессы были запущены данным контейнером, то увидим обычную виртуальную машину, отсюда и такой жор ресурсов.

Теперь вы знаете как запустить Synology Virtual DSM в контейнере Docker

Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии