docker - Docker Swarm 中的蓝牙
问题描述
有没有办法在 Docker Swarm 模式下将蓝牙暴露给容器?
我看到人们通常使用--net=host
docker,但network_mode: host
swarm 忽略了 Docker Compose 的等价物。
我还看到了使用本地主机网络的建议,如下所示:
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
但是,由于容器可以通过端口访问网络服务(即由运行在主机上的蓝牙应用程序创建),因此容器没有必要在主机网络中运行。
推荐阅读
- python - 使用 __doPostBack 进行网页抓取
- windows - Windows 事件跟踪:OpenTrace/ProcessTrace 未返回任何事件 - 未调用回调
- python - 在 Python 3.7.9 中使用 opencv 和 mediapipe 制作手部跟踪模块时出错
- c# - C# 列表
到 DataFrame (Microsoft.Data.Analysis.DataFrame) - 将列表加载到 DataFrame - python - 我的请求模块有什么问题?蟒蛇3.82
- javascript - 关闭并重新打开弹出窗口后删除验证错误消息
- python - 'tensorflow.python.framework.ops.EagerTensor' 对象没有属性 'conjugate'
- stm32 - 如何确定使用 FreeRTOS xTaskCreate 创建单个任务所需的 Stackdepth?
- csv - pyspark - 使用自定义行分隔符读取 csv
- uuid - 创建随机帖子 ID 而不是自动递增 - Strapi CMS