Docker Swarm中的蓝牙技术

Docker Swarm中的蓝牙技术,docker,bluetooth,raspberry-pi,docker-swarm,Docker,Bluetooth,Raspberry Pi,Docker Swarm,有没有办法在Docker Swarm模式下向容器公开蓝牙 我看到人们通常对docker使用--net=host,但是docker Compose的网络模式的等价物:host被swarm忽略 我还看到了使用本地主机网络的建议,如下所示: networks: host: name: host external: true 不幸的是,我仍然需要使用数据库和Traefik的代理访问一些其他网络,访问主机网络需要不使用任何其他网络,否则会出现错误 container sharing

有没有办法在Docker Swarm模式下向容器公开蓝牙

我看到人们通常对docker使用
--net=host
,但是docker Compose的
网络模式的等价物:host
被swarm忽略

我还看到了使用本地主机网络的建议,如下所示:

networks:
  host:
    name: host
    external: true
不幸的是,我仍然需要使用数据库和Traefik的代理访问一些其他网络,访问主机网络需要不使用任何其他网络,否则会出现错误

container sharing network namespace with another container or host cannot be connected to any other network
我想知道是否有其他方法将BT暴露在容器中?只需提及,它位于Raspberry Pi 4上,因此BT不是由单独的USB加密狗提供的。“有没有办法在Docker Swarm模式下向容器公开蓝牙?”

如果有问题的蓝牙设备在主机上有一个打开的网络端口,并且容器是通过docker swarm管理的,下面的代码片段可能会有所帮助。管理蓝牙设备和访问蓝牙服务(如ftp等)不是一回事

“需要使用数据库和Traefik的代理访问其他一些网络”

要访问其他网络上的其他服务,您可以在“顶级网络”部分添加这些服务,并在“服务网络”部分中指定它们:

networks:
  database_network
    name: database_network
    external: true
  proxy_network
    name: proxy_network
    external: true
  ...

services:
  svc_name:
    image: ...
    networks:
      - database_network
      - proxy_network
“访问主机网络需要不使用任何其他网络,否则会导致错误”

端口需要将模式设置为“主机”:

ports:
  - published: 9888
    target: 80
    mode: host  # set the mode

但是,由于容器可以通过端口访问网络服务(即,由主机上运行的蓝牙应用程序创建),容器不必在主机网络中运行。

嘿,谢谢你的回复,但我认为这与我的问题无关,我想问的是访问主机设备,如蓝牙或GPIO,而不是访问其他网络中的服务,也不是公开PortsanPower基于“…需要使用数据库和Traefik的代理访问一些其他网络,并访问主机网络…”以及问题中的错误消息。如果这是关于蓝牙设备的,下面是一个好方法: