webthingsio/gateway基于Debian Bookworm构建的Docker镜像,用于运行WebThings Gateway(物联网网关)。该镜像支持AMD64、ARMv7和ARMv8(AArch64)架构,提供跨平台的物联网设备管理能力。
--network="host")以满足部分附加组件的网络需求,同时也支持端口映射模式。--network="host"(主机网络模式)。但该模式在Docker for Mac和Docker for Windows中不适用,原因是Docker for Mac网络限制和Docker for Windows网络限制。shelldocker run \ -d \ -e TZ=Asia/Shanghai \ -v /path/to/local/data:/home/node/.webthings \ --network="host" \ --log-opt max-size=1m \ --log-opt max-file=10 \ --name webthings-gateway \ webthingsio/gateway:latest
(因不支持--network="host",需手动映射端口)
shelldocker run \ -d \ -p 8080:8080 \ -p 4443:4443 \ -e TZ=Asia/Shanghai \ -v /path/to/local/data:/home/node/.webthings \ --log-opt max-size=1m \ --log-opt max-file=10 \ --name webthings-gateway \ webthingsio/gateway:latest
| 参数 | 说明 |
|---|---|
-d | 后台运行容器(守护进程模式) |
-e TZ=<时区> | 设置容器时区,例如Asia/Shanghai。时区列表见tz数据库时区列表 |
-v /path/to/local/data:/home/node/.webthings | 挂载主机目录到容器,用于持久化存储用户配置、附加组件、日志等数据。需将/path/to/local/data替换为本地实际路径 |
--network="host" | 共享主机网络命名空间(推荐,部分附加组件依赖此模式),此时-p参数失效 |
-p 8080:8080/-p 4443:4443 | 端口映射(当--network="host"未使用时需配置),分别对应HTTP和HTTPS端口 |
--log-opt max-size=1m | 限制单日志文件大小为1MB |
--log-opt max-file=10 | 限制日志文件最大数量为10个 |
--name webthings-gateway | 容器名称,便于管理和操作 |
--network="host"模式下的端口当使用主机网络模式时,默认端口为HTTP 8080、HTTPS 4443。如需修改,需创建local.json配置文件并挂载到容器中:
/path/to/local/data)下创建config/local.json文件,内容如下:
json{ "ports": { "https": 8081, // 自定义HTTPS端口 "http": 8080 // 自定义HTTP端口 } }
创建docker-compose.yml文件(示例配置,根据实际环境调整):
yamlversion: '3' services: webthings-gateway: image: webthingsio/gateway:latest container_name: webthings-gateway restart: always environment: - TZ=Asia/Shanghai volumes: - /path/to/local/data:/home/node/.webthings network_mode: host # Linux系统推荐;Windows/macOS需替换为ports配置 # ports: # Windows/macOS使用时取消注释并配置 # - "8080:8080" # - "4443:4443" logging: driver: "json-file" options: max-size: "1m" max-file: "10"
启动容器:
shelldocker-compose up -d
容器运行后,通过以下URL访问WebThings Gateway管理界面:
http://<主机IP地址>:<HTTP端口>
(默认端口为8080,若已自定义端口则使用修改后的端口)
如需本地构建镜像,步骤如下:
克隆源码仓库:
shellgit clone [***] cd gateway
构建镜像(可添加构建参数):
shelldocker build \ --build-arg "gateway_url=[***]<你的仓库>/gateway" \ # 可选,自定义网关源码地址 --build-arg "gateway_branch=<你的分支>" \ # 可选,自定义源码分支 --build-arg "gateway_addon_version=<你的版本>" \ # 可选,自定义附加组件版本 -t gateway .
运行构建的镜像:
shelldocker run \ -d \ -e TZ=Asia/Shanghai \ -v /path/to/local/data:/home/node/.webthings \ --network="host" \ --log-opt max-size=1m \ --log-opt max-file=10 \ --name webthings-gateway \ gateway
若需使用依赖物理硬件的附加组件(如Zigbee、Z-Wave适配器),需将主机设备挂载到容器,并确保设备权限:
shelldocker run \ ... # 其他参数 --device /dev/ttyACM0:/dev/ttyACM0 # 挂载USB设备(需替换为实际设备路径) ...
容器内设备需属于GID 20(对应
dialout用户组),可通过主机udev规则配置设备权限。
在树莓派等支持GPIO的设备上运行时,需添加以下参数之一:
--privileged-v /sys:/sysGPIO节点需属于GID 997(对应容器内
gpio用户组)。
若需使用蓝牙功能:
systemctl disable bluetooth--privileged




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务