Установка Node-RED в Docker
Установить Node-RED в Docker довольно просто благодаря официальному образу, предоставляемому разработчиками. Docker позволяет запустить Node-RED в изолированном контейнере с минимальной настройкой. Я опишу пошаговый процесс установки, включая запуск через docker run и использование docker-compose для более удобного управления. Предполагается, что у вас уже установлен Docker на вашем сервере или локальной машине.
Установка Node-RED в Docker
Способ 1: Использование docker run
Проверка установки Docker: Убедитесь, что Docker работает:
bash
docker --version
Если Docker не установлен, установите его согласно инструкциям для вашей ОС (например, apt install docker.io на Ubuntu).
Запуск контейнера Node-RED: Выполните команду для запуска Node-RED с официальным образом:
bash
docker run -it -p 1880:1880 --name node-red nodered/node-red
-it: Интерактивный режим с терминалом.
-p 1880:1880: Проброс порта 1880 (по умолчанию для Node-RED) из контейнера на хост.
--name node-red: Имя контейнера.
nodered/node-red: Официальный образ из Docker Hub.
Доступ к Node-RED: Откройте браузер и перейдите по адресу:
text
http://localhost:1880
Вы увидите интерфейс Node-RED.
Остановка контейнера: Чтобы остановить:
bash
docker stop node-red
Для повторного запуска:
bash
docker start node-red
Добавление постоянного хранения
По умолчанию данные (потоки, настройки) хранятся внутри контейнера и теряются при его удалении. Чтобы сохранить данные:
bash
docker run -it -p 1880:1880 -v node_red_data:/data --name node-red nodered/node-red
-v node_red_data:/data: Создаёт том (node_red_data) и монтирует его в /data внутри контейнера, где Node-RED сохраняет свои файлы.
Способ 2: Использование docker-compose
Этот способ удобнее для настройки и управления, особенно если вы планируете использовать Node-RED長期 или добавлять дополнительные сервисы.
Создайте файл docker-compose.yml: Создайте файл в любой папке:
yaml
version: "3"
services:
node-red:
image: nodered/node-red:latest
container_name: node-red
ports:
- "1880:1880"
volumes:
- node_red_data:/data
restart: unless-stopped
volumes:
node_red_data:
image: Последняя версия образа Node-RED.
ports: Проброс порта 1880.
volumes: Постоянное хранилище для данных.
restart: unless-stopped: Автоматический перезапуск контейнера, если он остановился (кроме ручной остановки).
Запустите Node-RED: В папке с docker-compose.yml выполните:
bash
docker-compose up -d
-d: Запуск в фоновом режиме.
Доступ к Node-RED: Откройте браузер:
text
http://localhost:1880
Остановка и удаление: Остановить:
bash
docker-compose stop
Удалить контейнеры (данные в томе сохранятся):
bash
docker-compose down
Дополнительные настройки
1. Указание версии
Если нужна конкретная версия Node-RED (например, 2.2.2):
В docker run:
bash
docker run -it -p 1880:1880 --name node-red nodered/node-red:2.2.2
В docker-compose.yml:
yaml
image: nodered/node-red:2.2.2
2. Настройка переменных окружения
Node-RED поддерживает настройку через переменные окружения. Например:
TZ=Europe/Moscow — часовой пояс.
NODE_RED_CREDENTIAL_SECRET=your-secret — ключ для шифрования учетных данных.
В docker-compose.yml:
yaml
services:
node-red:
image: nodered/node-red:latest
environment:
- TZ=Europe/Moscow
- NODE_RED_CREDENTIAL_SECRET=mysecretkey
ports:
- "1880:1880"
volumes:
- node_red_data:/data
3. Добавление собственных нод
Если вы хотите установить дополнительные ноды (например, node-red-contrib-telegram):
Создайте файл package.json в папке с данными (например, ./node-red-data):
json
{
"dependencies": {
"node-red-contrib-telegram": "^2.0.0"
}
}
Смонтируйте эту папку:
yaml
volumes:
- ./node-red-data:/data
Перезапустите контейнер:
bash
docker-compose down && docker-compose up -d
Node-RED автоматически установит указанные зависимости.
4. Защита паролем
Для включения авторизации:
Включите админ-редактор с паролем через settings.js. Скопируйте файл настроек в том:
javascript
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$...", // сгенерировать хэш через `node-red admin hash-pw`
permissions: "*"
}]
}
Смонтируйте файл:
yaml
volumes:
- ./node-red-data/settings.js:/data/settings.js
Проверка работы
После запуска:
Перейдите на http://localhost:1880.
Создайте простой поток (например, inject → debug).
Нажмите "Deploy" и проверьте вывод в консоли или интерфейсе.
Итог
Простой запуск: docker run -it -p 1880:1880 -v node_red_data:/data nodered/node-red.
С docker-compose: Используйте приведённый docker-compose.yml для удобства.
Данные: Сохраняются в томе node_red_data.
Node-RED будет работать на вашем сервере или локальной машине, доступный через браузер.
No Comments