本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

此镜像正在替代marthoc/deconz镜像。
如果要将现有marthoc/deconz安装迁移到deconzcommunity/deconz,必须稍微修改配置。请仔细按照以下步骤操作:
marthoc/deconz更改为deconzcommunity/deconz。可用标签见此处。/root/.local/share/dresden-elektronik/deCONZ更改为/opt/deCONZ。拉取新镜像并启动。
此Docker镜像容器化了Dresden Elektronik的deCONZ软件,该软件通过Conbee USB或RaspBee GPIO串口接口控制ZigBee网络。此镜像以"最小"模式运行deCONZ,支持通过WebUI("Wireless Light Control"和"Phoscon")、REST API和Websockets控制ZigBee网络,还可选择运行VNC服务器,用于通过deCONZ UI查看和交互ZigBee网格。
Conbee支持amd64、armhf/armv7和aarch64/arm64(如RaspberryPi 2/3B/3B+及其他arm64板)架构;RaspBee支持armhf/armv7和aarch64/arm64(有关配置Raspbian以允许访问RaspBee串口硬件的说明,请参见下文"为RaspBee配置Raspbian"部分)。
此镜像的构建版本可从Docker Hub或Github Container Registry拉取,标签如下:
| 标签 | 描述 |
|---|---|
| latest | deCONZ的最新版本(稳定版或测试版) |
| stable | 仅deCONZ的稳定版 |
| beta | 仅deCONZ的测试版 |
| version | deCONZ的特定版本(如2.13.02,仅在需要固定版本时使用) |
"latest"、"stable"和"version"标签支持amd64、armv7和arm64的多架构,因此指定这些标签将拉取对应架构的正确版本。
请查阅Docker Hub或Github Container Registry获取此镜像的最新可用版本。
docker pull deconzcommunity/deconz:latestdocker pull ghcr.io/deconz-community/deconz-docker:latest,更多信息见***文档在运行创建deconz Docker容器的命令之前,可能需要将Linux用户添加到dialout组,以允许用户访问串口设备(如Conbee/Conbee II/RaspBee/RaspBeeII):
sudo usermod -a -G dialout $USER
对于Raspberry PI 4B上的RaspBee/Raspbee 2安装:确保Wiring Pi已更新到最新版本!
sudo apt install wiringpi
docker run -d \ --name=deconz \ --restart=always \ -p 80:80 \ -p 443:443 \ -v /etc/localtime:/etc/localtime:ro \ -v /opt/deconz:/opt/deCONZ \ --device=/dev/ttyUSB0 \ deconzcommunity/deconz
| 参数 | 描述 |
|---|---|
--name=deconz | 将容器命名为"deconz"。 |
--net=host | 使用主机网络模式以实现正确的uPNP功能;默认情况下,Web UI和REST API监听80端口,Websockets服务监听443端口。若这些端口与主机上其他服务冲突,可通过下文环境变量DECONZ_WEB_PORT和DECONZ_WS_PORT更改。 |
--restart=always | Docker启动时(如开机/重启时)启动容器。 |
-v /etc/localtime:/etc/localtime:ro | 确保容器具有正确的本地时间(也可使用下文TZ环境变量)。 |
-v /opt/deconz:/opt/deCONZ | 将/opt/deconz(或您选择的目录)绑定挂载到容器中以实现持久存储。 |
--device=/dev/ttyUSB0 | 将ttyUSB0串口设备传递到容器供deCONZ使用(若同时使用其他USB串口设备,可能需要确认设备名称;默认ConBee=/dev/ttyUSB0,Conbee II=/dev/ttyACM0,RaspBee=/dev/ttyAMA0或/dev/ttyS0)。 |
deconzcommunity/deconz | 此镜像使用多架构清单列表;指定deconzcommunity/deconz:latest或deconzcommunity/deconz:stable将拉取对应架构的正确版本。 |
使用以下环境变量可更改容器的默认行为。
| 参数 | 描述 |
|---|---|
-e DECONZ_WEB_PORT=8080 | 默认情况下,Web UI("Wireless Light Control"和"Phoscon")和REST API监听80端口;仅在需要更改监听端口时设置此环境变量。 |
-e DECONZ_WS_PORT=8443 | 默认情况下,Websockets服务监听443端口;仅在需要更改监听端口时设置此环境变量。 |
-e DEBUG_INFO=1 | 设置deCONZ命令行标志--dbg-info的级别(默认1)。 |
-e DEBUG_APS=0 | 设置deCONZ命令行标志--dbg-aps的级别(默认0)。 |
-e DEBUG_ZCL=0 | 设置deCONZ命令行标志--dbg-zcl的级别(默认0)。 |
-e DEBUG_ZDP=0 | 设置deCONZ命令行标志--dbg-zdp的级别(默认0)。 |
-e DEBUG_OTAU=0 | 设置deCONZ命令行标志--dbg-otau的级别(默认0)。 |
-e DEBUG_ERROR=0 | 设置deCONZ命令行标志--dbg-error的级别(默认0)。 |
-e DECONZ_DEVICE=/dev/ttyUSB1 | 默认情况下,deCONZ在/dev/ttyAMA0搜索RaspBee,在/dev/ttyUSB0搜索Conbee;当使用其他USB设备(如Z-Wave棒)时,deCONZ可能无法正确找到RaspBee/Conbee。将此环境变量设置为与--device传递的字符串相同,以强制deCONZ使用特定USB设备。 |
-e TZ=America/Toronto | 设置本地时区,使deCONZ具有正确时间。 |
-e DECONZ_VNC_MODE=1 | 设置此选项以启用对容器的VNC访问,用于查看deCONZ ZigBee网格。 |
-e DECONZ_VNC_PORT=5900 | VNC模式的默认端口为5900;此选项可用于更改此端口。 |
-e DECONZ_VNC_PASSWORD=changeme | VNC模式的默认密码为'changeme';此选项可(应)用于更改默认密码。 |
-e DECONZ_VNC_PASSWORD_FILE=/var/secrets/my_secret | 默认禁用,使用DECONZ_VNC_PASSWORD。有关为Docker容器创建密钥的详细信息,见***文档对应部分 |
-e DECONZ_NOVNC_PORT=6080 | noVNC的默认端口为6080;此选项可用于更改此端口;将端口设置为0将禁用noVNC功能。 |
-e DECONZ_UPNP=0 | 设置此选项为0以禁用uPNP,详见:[***] |
-e DECONZ_UID=1000 | 设置deCONZ卷的用户ID。 |
-e DECONZ_GID=1000 | 设置deCONZ卷的组ID。 |
-e DECONZ_START_VERBOSE=0 | 设置此选项为0以禁用启动脚本的详细输出,设置为1以启用set -x日志记录。 |
此镜像GitHub仓库的根目录提供了完整的docker-compose.yml文件。您也可将以下内容复制粘贴到现有docker-compose.yml中,根据需要修改选项(省略version和services行,因为您的docker-compose.yml已包含这些)。
version: "2" services: deconz: image: deconzcommunity/deconz container_name: deconz restart: always ports: - 80:80 - 443:443 volumes: - /opt/deconz:/opt/deCONZ devices: - /dev/ttyUSB0 environment: - DECONZ_WEB_PORT=80 - DECONZ_WS_PORT=443 - DEBUG_INFO=1 - DEBUG_APS=0 - DEBUG_ZCL=0 - DEBUG_ZDP=0 - DEBUG_OTAU=0
然后,可执行docker-compose pull拉取最新的deconzcommunity/deconz镜像,docker-compose up -d启动deconz容器服务,docker-compose down停止deconz服务并删除容器。注意,这些命令也会拉取、启动和停止docker-compose.yml中定义的其他服务。
Mac/Windows尚不支持--net=host选项。要在这些平台上运行此容器,请在run命令中显式指定端口并省略--net=host:
docker run -d \ --name=deconz \ -p 80:80 \ -p 443:443 \ --restart=always \ -v /opt/deconz:/opt/deCONZ \ --device=/dev/ttyUSB0 \ -e DECONZ_WEB_PORT=80 \ -e DECONZ_WS_PORT=443 \ deconzcommunity/deconz
Raspbian默认将蓝牙分配给/dev/ttyAMA0,并通过串口(tty)配置登录shell。必须禁用tty登录shell并启用串口硬件,同时将蓝牙交换到/dev/S0,以允许RaspBee在Docker下正常工作。
禁用串口登录shell并启用串口硬件:
sudo raspi-configInterfacing Options(接口选项)Serial(串口)No(否)Yes(是)将蓝牙交换到/dev/S0(将RaspBee移至/dev/ttyAMA0),运行以下命令并重启:
echo 'dtoverlay=pi3-miniuart-bt' | sudo tee -a /boot/config.txt
运行上述命令并重启后,RaspBee应可在/dev/ttyAMA0访问。
Web UI中的固件更新将静默失败。此Docker镜像提供了一个交互式实用脚本,可用于刷新设备固件。该脚本已在amd64 Debian Linux、armhf Raspbian Stretch(Conbee)和armhf Raspbian Stretch(RaspBee)上测试并验证可用。
但请注意,此固件刷新方式不保证一定有效。若有效,将加快整个过程;若无效,则需按照以下链接手动更新固件:
[***]
这可能需要将设备插入未运行Docker的其他系统(如Windows)。
该脚本调用刷新工具GCFFlasher_internal,将输出任何失败信息。在某些情况下,刷新工具运行成功但之后无法启动deCONZ(显示"disconnected device")。此时,可多次尝试该过程或调整retries和timeout参数。
使用脚本更新固件,请按照以下说明操作:
输入docker logs [容器名称],查找日志开头附近如下行,记录列出的.GCF文件名(后续需要):
GW update firmware found: /usr/share/deCONZ/firmware/deCONZ_Rpi_0x261e0500.bin.GCF GW firmware version: 0x261c0500 GW firmware version shall be updated to: 0x261e0500
docker stop [容器名称]
或
docker-compose down
docker run -it --rm --entrypoint "/firmware-update.sh" --privileged --cap-add=ALL -v /dev:/dev -v /lib/modules:/lib/modules -v /sys:/sys deconzcommunity/deconz
若有多个USB设备,可映射对应Conbee/Raspbee的/dev/...卷以避免错误路径映射:
docker run -it --rm --entrypoint "/firmware-update.sh" --privileged --cap-add=ALL -v /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DExxxxxxx-if00:/dev/ttyACM0 -v /lib/modules:/lib/modules -v /sys:/sys deconzcommunity/deconz
也可在调用末尾添加其他选项:
docker run ... deconzcommunity/deconz [option1] [value1] [option2] [value2] ...
若这些是刷新工具的有效选项,将添加到调用中:
| 选项 | 描述 | 默认值(如有) |
|---|---|---|
-f [firmware] | 刷新固件文件路径 | - |
-d [device] | 使用的设备编号或路径,如0、/dev/ttyUSB0或RaspBee | DECONZ_DEVICE的值 |
-t [timeout] | 重试直到超时(秒) | 60 |
-R [retries] | 最大重试次数 | - |
-x [loglevel] | 调试日志级别0、1、3 | - |
请注意,脚本仍会询问设备和固件文件的值,但您的选项将作为默认值。
/dev/ttyUSB0)。docker start [容器名称]
或
docker-compose up
问:为什么脚本提示无法卸载ftdi_sio和usbserial模块,或无法重置设备?
答:要刷新设备,系统上不能有其他程序或设备使用这些内核模块或设备。停止任何可能使用模块或设备的程序/容器(可能是deCONZ),然后再次调用脚本。若错误持续,可能需要暂时移除其他USB串口设备以允许脚本完全卸载内核模块。
问:为什么即使指定了更长的超时,刷新运行仍在几秒后失败?
答:设置超时允许刷新工具在超时时间内多次尝试运行,单次运行的超时时间无法通过参数更改。
将环境变量DECONZ_VNC_MODE设置为1可启用容器中的VNC服务器;使用VNC客户端连接到此VNC服务器以查看deCONZ ZigBee网格。环境变量DECONZ_VNC_PORT可控制VNC服务器监听的端口(默认5900);环境
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429