> For the complete documentation index, see [llms.txt](https://cube.ewelink.cc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cube.ewelink.cc/cube-os-ru/nachalo-raboty/quickstart/docker.md).

# Docker

Установите CUBE OS как контейнер Docker на хосте Linux. Этот метод хорошо подходит для домашних серверов, NAS-устройств и постоянно включенных Linux-машин.

{% hint style="info" %}
Развертывание Docker поддерживается на **только Linux**.

Если у вас нет хоста Linux, используйте [Raspberry Pi](/cube-os-ru/nachalo-raboty/quickstart/raspberry-pi.md) или [виртуальную машину](/cube-os-ru/nachalo-raboty/quickstart/virtualnaya-mashina/virtualbox.md).
{% endhint %}

### 1. Подготовка

{% stepper %}
{% step %}
**Проверьте архитектуру хоста**

CUBE Docker поддерживает следующие архитектуры Linux:

* **amd64** (`x86_64`) — ПК, серверы, Synology NAS и подобные устройства
* **arm64** (`aarch64`) — Raspberry Pi 4/5, Orange Pi и другие хосты ARM
  {% endstep %}

{% step %}
**Проверьте версию ядра Linux**

Ядро `4.15` или новее требуется.

```bash
uname -r
```

{% hint style="warning" %}
Некоторые NAS-устройства поставляются со старыми ядрами, такими как `4.4.x`. Эти хосты несовместимы с CUBE Docker. В этом случае запустите CUBE OS в виртуальной машине Linux.
{% endhint %}
{% endstep %}

{% step %}
**Установите Docker Engine**

Установите Docker Engine на хост перед продолжением.

Используйте [официальное руководство по установке Docker](https://docs.docker.com/engine/install/).
{% endstep %}

{% step %}
**Проверьте необходимые порты**

Убедитесь, что порты `80` и `1883` свободны на хосте.

```bash
sudo lsof -i :80
sudo lsof -i :1883
```

* **80** — веб-интерфейс CUBE OS
* **1883** — MQTT-брокер

Если другой сервис использует эти порты, сначала остановите его.
{% endstep %}

{% step %}
**Подготовьте Zigbee-адаптер, если требуется**

Если вы планируете добавить устройства Zigbee, подключите совместимый Zigbee-адаптер к хосту.

Проверенные Zigbee-адаптеры включают:

> SONOFF ZBDongle-MAX\
> SONOFF ZBDongle-PMG24\
> SONOFF ZBDongle-LMG21\
> SONOFF ZBDongle-E\
> SONOFF ZBDongle-P\
> [Другие перечислены](https://darkxst.github.io/silabs-firmware-builder/) от разработчика @darkxst&#x20;

{% hint style="info" %}
Для получения дополнительной информации о конфигурациях и совместимости Zigbee, пожалуйста, обратитесь к этому [руководству](/cube-os-ru/proverka-sovmestimosti/zigbee.md).
{% endhint %}

Для получения дополнительной информации о поддержке Zigbee см. [это руководство](/cube-os-ru/proverka-sovmestimosti/zigbee.md).
{% endstep %}
{% endstepper %}

### 2. Скачайте образ

{% stepper %}
{% step %}
**Скачайте последний образ**

```bash
docker pull ghcr.io/ewelinkcube/cube-os:latest
```

<div align="left"><figure><img src="/files/9c19064b2e7fb6f8c85f65f09d7b6e8a0d7e33a6" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Вы можете заменить `latest` на конкретный тег версии, например `2.10.3`. Доступные версии перечислены в [релизах GitHub](https://github.com/eWeLinkCUBE/CUBE-OS/releases/).
{% endhint %}
{% endstep %}
{% endstepper %}

### 3. Запустите CUBE OS

{% stepper %}
{% step %}
**Создайте каталог данных**

```bash
mkdir -p ~/cubeos-data
```

В этом каталоге хранятся ваши устройства, сцены и настройки.
{% endstep %}

{% step %}
**Проверьте путь к устройству Zigbee, если используете его (необязательно)**

Распространенные пути к устройствам:

```bash
ls /dev/ttyUSB* /dev/ttyACM*
```

Используйте правильный путь в следующей команде.
{% endstep %}

{% step %}
**Запустите контейнер**

Используйте эту команду как основу:

```bash
docker run -d \\
  --name cubeos \\
  --privileged \\
  --net=host \\
  -v ~/cubeos-data:/data \\
  --device /dev/ttyUSB0:/dev/ttyUSB0 \\
  -v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro \\
  ghcr.io/ewelinkcube/cube-os:latest
```

<div align="left"><figure><img src="/files/c0af37a8d03c76c755122d6ee5836bec8ebe0eb6" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Если вы не используете Zigbee, удалите `--device /dev/ttyUSB0:/dev/ttyUSB0`.

Если вы не используете Matter Hub или eWeLink Remote, вы также можете удалить монтирование D-Bus.
{% endhint %}
{% endstep %}

{% step %}
**Поймите основные параметры**

* `--privileged` — требуется для доступа к оборудованию
* `--net=host` — требуется для обнаружения в локальной сети и MQTT
* `-v ~/cubeos-data:/data` — сохраняет ваши данные после перезапуска контейнера
* `--device /dev/ttyUSB0:/dev/ttyUSB0` — пропускает Zigbee-адаптер
* `-v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro` — обеспечивает доступ к D-Bus для поддерживаемых функций
  {% endstep %}
  {% endstepper %}

### 4. Доступ к CUBE OS

{% stepper %}
{% step %}
**Убедитесь, что контейнер запущен**

```bash
docker ps
```

Статус контейнера должен показывать `Работает`.
{% endstep %}

{% step %}
**Откройте веб-интерфейс**

Откройте браузер в той же сети и перейдите по одному из этих адресов:

* `http://<HOST_IP>/`
* <http://cube.local>

Замените `<HOST_IP>` на IP-адрес хоста Linux.
{% endstep %}

{% step %}
**Используйте короткий локальный адрес позже**

После настройки вы можете найти короткий ID на странице настроек.

Затем вы можете использовать `cube-{short-id}.local` чтобы идентифицировать этот экземпляр CUBE OS в вашей локальной сети.
{% endstep %}
{% endstepper %}

### 5. Обновление CUBE OS

Развертывание Docker не поддерживает OTA-обновления через веб-интерфейс.

Чтобы обновить вручную:

```bash
docker stop cubeos
docker rm cubeos
docker pull ghcr.io/ewelinkcube/cube-os:latest

docker run -d \\
  --name cubeos \\
  --privileged \\
  --net=host \\
  -v ~/cubeos-data:/data \\
  --device /dev/ttyUSB0:/dev/ttyUSB0 \\
  -v /run/dbus/system_bus_socket:/host_dbus/system_bus_socket:ro \\
  ghcr.io/ewelinkcube/cube-os:latest
```

Ваши данные остаются в `~/cubeos-data`, поэтому устройства, сцены и настройки сохраняются после обновления.

### 6. Ограничения

Из-за изоляции контейнера в Docker-развертываниях недоступны следующие функции:

* **Дополнения** — нельзя устанавливать или управлять дополнениями
* **Bluetooth-динамик** — проброс Bluetooth не поддерживается
* **Обновление системы** — OTA-обновления в веб-интерфейсе отключены
* **Перезагрузка / выключение** — системные средства управления питанием недоступны

### 7. Примечание для Raspberry Pi

Если вы запускаете Docker на Raspberry Pi, убедитесь, что размер страницы равен `4096`:

```bash
getconf PAGE_SIZE

# Если результат не равен 4096, добавьте эту строку и перезагрузите
echo "kernel=kernel8.img" | sudo tee -a /boot/firmware/config.txt
sudo reboot
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cube.ewelink.cc/cube-os-ru/nachalo-raboty/quickstart/docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
