Прежде чем устанавливать Docker в OMV, есть смысл погонять его на своём ноуте.
https://wiki.omv-extras.org/doku.php?id=omv7:docker_in_omv#install_and_configure_docker
Подготовить установку Docker
Обновить OMV по-максимуму
System
> Update Management
> [Check]
Прописать/проверить DNS server
Если IP-адрес NAS в настройках роутера был динамическим, то добавление гугловского днс этот IP-адрес поменяет. Если он уже был прописан, то вряд ли, но всё равно придётся глянуть для уверенности и проверить соеднение по ssh.
Если к NAS был предопределён доступ извне по IP, то IP-адрес будет изменён наверняка.
8.8.8.8 — это DNS Google.
Можно указать другой, если есть под рукой.
Network > Interfaces > отредактировать существующее подключение (Ethernet, конечно же) > Advanced settings > DNS servers = 8.8.8.8
Создать нового юзера только для Docker
Это НЕ должен быть существующий root или юзер с ролью admin по всей системе, поэтому надо сделать нового (Users:Добавить пользователей). Назовём его mydoker — да, нарочно без буквы «c».
Добавить нового юзера mydoker в группы
- docker
- _ssh
- sudo
- users
Не ставить галочку для „Disallow account modification”.
Проверить, что mydoker может зайти на NAS через ssh. Для этого ему будет нужен SSH:Сделать личный ssh-ключ.
Затем
ssh mydoker@192.168.50.60 (или какой там IP)
Создать shared-каталоги для Docker
Можно положить их на один диск или на разные — nevermind, но надо учесть, что туда будет записываться много информации, поэтому лучше положить их на hdd с запасом по объёму.
Может показаться, что проще положить несколько каталогов в один общий каталог (это ок) и сделать только shared только головной. Но надо сделать отдельные каталоги для разных типов данных и надо каждый этот каталог сделать shared по-отдельности, потому что дальше в настройках надо будет указывать отдельные шары для отдельных операций.
Поэтому создаем на отдельном диске каталог „docker“ и внутри него каталоги
- app
- backup
- composefiles
- containers
- data
- containers — это каталог, в котором уже находятся служебные файлы и в который будут сохраняться данные каждого контейнера.
- опционально можно добавить ещё два — downloads и media, но если на дисках уже есть каталог, в который будем сохранять файлы, то новый создавать не нужно.
Посему:
- Залогиниться под юзером mydoker
- Выбрать подходящий диск
- Создать в его корне каталог „docker“
- Создать внутри него сразу несколько каталогов (downloads и media — опционально):
mkdir app backup composefiles containers data downloads media
- Сделать каждый из этих каталогов shared — Shared Folders:Добавить shared-каталог — с настройками доступа «Everyone read/write».
Аккуратно к названиям каталогов. В системе не должно быть shared-каталогов с идентичным названием, даже если они «смотрят» в разные места. Разумно назвать докеровские shared-каталоги с приставкой вроде „dkr”:
- dkr.backup
- dkr.composefiles
- dkr.containers
- dkr.data
Каталог “app” делать shared не надо.
Установить плагины для Docker
Сперва должны быть установлены плагины Reset Permisions и OMV-Extras — см. Установка OMV:Настроить плагины
В будущем настройки прав для каталога «appdata» придётся сбрасывать неоднократно, Docker иногда по-своему перезаписывает права доступа.
Включить Docker repo
System
> omv-extras
поставить галочку для Docker-repo (вероятно, она уже поставлена)
Кликнуть по [apt-clean] и дождаться финиша.
Установить плагин openmediavault-compose
System
> Plugins
> установить плагин openmediavault-compose
Обычно всё по-умолчанию устанавливается в /var/lib/docker. Если у нас в принципе один диск, то ок. Если же система на ssd, а всё остальное на hdd (как и полагается в nas), то это всё надо поменять. Там нужно постоянно под 50 Gb свободного места, кагбэ…
Установить плагин openmediavault-k8s
Это Kubernetes. Опционально, в основе не нужен, буду всё делать через Compose.
System
> Plugins
> установить плагин openmediavault-k8s
Установить Docker Compose
Services
> Compose
> Settings
Указать shared folder для Compose Files: dkr.composefiles
Group: sudo
Permissions of directories and files: Administrator - read/write, Users - no access, Others - no access
Указать shared folder для Data: dkr.data
Указать shared folder для Backup: dkr.backup
Указать Docker Storage:
я уже сделал в каталоге с файлами Docker новый каталог с именем “app”.
указать в этом поле что-то вроде /srv/dev-disk-by-uuid-a165a938…/docker/app
Save.
Кликнуть „Enable Docker repo”.
В полях
Status: Uninstalled
Docker version: n/a
Compose version: n/a
Это нормально.
Проверить установленный Docker
Зайти на NAS по ssh и последовательно запросить информацию:
- docker --version
- docker-compose --version
- sudo docker info | grep Root
Ожидаемый ответ после последней команды:
Docker Root Dir: /srv/dev-disk-by-uuid-a165a938…/docker/app
В этот каталог отныне может заходить только root.
Перезапустить сервис Docker:
sudo systemctl start docker
Если всё ок, ответом будет тишина.
Проверить дефолтное состояние докера
sudo docker ps
Ожидаемый ответ: таблица с контейнерами
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Она пустая, контейнеров ещё нет.
Вернуться в
Services
> Compose
> Settings
и кликнуть по [Restart Docker]. После этого в полях
Status: Installed and running
Docker version: что-то новое
Compose version: что-то новое
Next step: Настройка контейнеров