『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 13933|回复: 6

[经验分享] 群晖docker中container共享宿主机usb并支持热插拔的方法

[复制链接]

69

主题

691

帖子

4254

积分

论坛元老

Rank: 8Rank: 8

积分
4254
金钱
3558
HASS币
80
发表于 2020-5-26 23:56:18 | 显示全部楼层 |阅读模式
本帖最后由 zhenxiwen 于 2020-5-27 00:12 编辑

我的系统是ESXI6.7虚拟机安装黑群晖6.2.2,然后群晖docker安装了Esphome、MQTT、Nodered、Influxdb、traccar等容器,而我的HA是安装在esxi6上的虚拟机。为何要这样呢,是被逼出来的,原来上面这些容器我都是在ha的插件中安装的,但是,这样的结果是ha的重启和运行都被拖的很慢,有时还会卡死,而这样分开安装,ha快多和稳定多了。
但是,这样安装有个问题是,esphome刷机时需要usb插口,怎么办呢?查了好久,没有办法解决。通过下面办法,可以实现esphome共享黑群晖的usb口,并支持热插拔:


群晖docker中container共享宿主机usb的方法:关键是在运行命令中添加两个参数:--privileged=true,-v /dev/bus/usb:/dev/bus/usb

安装esphome并使用宿主机usb口的方法:

前提直通usb给黑群晖:先行在esxi中将usb卡切换直通,然后在DSM虚拟机中添加pci设备,这样usb就直通给群晖虚拟机使用。


一、Xshell 6中root用户登录群辉

二、输入如下命令,创建esphome容器

docker run -itd --privileged=true --net="host" --name=esphome --restart=always -v /volume2/docker/esphome:/config -v /dev/bus/usb:/dev/bus/usb -e TZ=Asia/Shanghai esphome/esphome


对命令解析:

docker run -itd --privileged=true(关键参数) --net="host"(共享宿主机ip) --name=esphome(容器名称) --restart=always(自动重启) -v /volume2/docker/esphome:/config(挂载文件夹) -v /dev/bus/usb:/dev/bus/usb(挂载usb口) -e TZ=Asia/Shanghai esphome/esphome(image的名称)


三、浏览器中输入:http://192.168.1.XXX:6052 登录esphome,即可用发现已经可以使用usb






回复

使用道具 举报

14

主题

245

帖子

3538

积分

论坛元老

Rank: 8Rank: 8

积分
3538
金钱
3293
HASS币
0
发表于 2020-6-14 14:24:18 | 显示全部楼层
正好遇到相同问题
我环境是   esxi虚拟群晖,usb直通给群晖后,我在群晖docker下的homeassistant需要用到usb设备

但我目前已经弄好homeassistant了,如果按你这个命令的话,就需要重新创建新的容器吧,怎么才能在不影响原有的homeassistant情况下,将usb直通过来???
回复

使用道具 举报

2

主题

34

帖子

898

积分

高级会员

Rank: 4

积分
898
金钱
864
HASS币
0
发表于 2020-6-27 20:27:41 来自手机 | 显示全部楼层
HA安装在esxi6上的虚拟机,我这样装上后,只要一停电,ha就启动不了了
回复

使用道具 举报

66

主题

779

帖子

4413

积分

论坛元老

Rank: 8Rank: 8

积分
4413
金钱
3629
HASS币
20
发表于 2020-9-1 13:01:41 | 显示全部楼层
好奇怪,为什么我的esxi中无法直通usb,是灰色的,其他的pcie的网卡、阵列卡都能直通的
回复

使用道具 举报

40

主题

1129

帖子

4260

积分

论坛元老

Rank: 8Rank: 8

积分
4260
金钱
3131
HASS币
0
发表于 2020-9-27 23:11:33 | 显示全部楼层
docker run -t -i --privileged=true,-v /dev/bus/usb:/dev/bus/usb

我通过putty访问群晖,运行这个命令直接报错
提示root@yxw-nas:~# docker run -t -i --privileged=true,-v /dev/bus/usb:/dev/bus/usbinvalid argument "true,-v" for "--privileged" flag: strconv.ParseBool: parsing "true,-v": invalid syntax
See 'docker run --help'.
回复

使用道具 举报

3

主题

189

帖子

2075

积分

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
1886
HASS币
0
发表于 2020-11-16 16:50:41 | 显示全部楼层
哥们我是实体黑群晖然后docker安装esphome环境 ,esp32 usb插黑群晖,esphome没有设备。
DAA828BC-615D-4EF2-A4EE-7F7E3E0299EE.png
FD170B89-5DA3-4FEA-9D37-EB2DA9584BBB.png
回复

使用道具 举报

14

主题

165

帖子

754

积分

高级会员

Rank: 4

积分
754
金钱
589
HASS币
0
发表于 2020-12-5 13:20:02 | 显示全部楼层
zmqo1234 发表于 2020-11-16 16:50
哥们我是实体黑群晖然后docker安装esphome环境 ,esp32 usb插黑群晖,esphome没有设备。 ...

我也是实体群辉 安装DOCKER容器  然后安装的ESPHome目前是不识别SUB    你问题解决了没有  ,,希望指点下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-26 11:27 , Processed in 0.148747 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表