| 本帖最后由 ylilike 于 2022-7-30 18:00 编辑 
 
 有时候需要重要一下容器,不管是用命令 docker restart container_name 
  或者  进入 portainer 选中 container_name重启 总归是有点繁琐…… 那么问题来了,有什么简单方便的方法,或者,做个开关一键重启呢? 答案显然是 :yes前置条件要有portainer,重启调用了portainer API 的 restart 命令抓登陆包 首先,打开浏览器,按F12开发者工具,然后,登陆一下portainer,找到auth 得到request: | Request URLUL |  |  | Request Method | POST |  | Request payload | {"username":"admin","password":"12342234"} | 
 响应的结果为: {"jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsInNjb3BlIjoiZGVmYXVsdCIsImV4cCI6MTY1Nzc5Mjg0M30.C51VqcP2F_YwaLceMAufxxQE-ufvMxcvkk6XQ2V4zyc"} 
 这就是auth验证的关键在node-red中构造请求 payload 用 function ,内容如下: 点击时间戳,得到 jwt认证token抓取重启的包 有了token再来抓个重启的包: | Request URLUL |  |  | Request Method | POST |  | Request payload | {} | 
 url中那一长串,是容器的id auth 已经在上一步获取到了,万事俱备,只欠构造!构造重启请求 auth调用上步登陆取的jwt值,写进headers中,id值从portainer中取到。 request节点请求方式选 : 用msg method 设定 这样就可以手动从node-red中重启容器了。home-assistant 中调用一键重启 这方式就多种多样了,我就拿mqtt来做个开关,一键重启了。 做一个虚拟的mqtt开关 switch:   - platform: mqtt     name: "重启smb"     state_topic: "/restart_smb/stat"     command_topic: "/restart_smb/cmmd"     payload_on: "on"     payload_off: "off" 
 写入home-assistant的配置文件中并重启。 然后到node-red中加入 mqtt 做关联:如下图导出的流分享如下: 
 
 
 |