Краткая инструкция как запустить 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