Docker 帮助请求:我正在尝试将 Swarm 中的容器连接到/dev
. 在 docker 容器中运行时,连接通过设备映射正常工作,但是我们无法连接到 Swarm 节点中的设备。
该设备恰好是图形硬件,可将 vaapi 驱动程序与我们的 Gstreamer 管道一起使用,位于此处:/dev/dri/renderD128
,但这是从集群中的容器连接到任何设备的通用问题。
我正在寻找有关通过 Swarmkit 通用资源映射到我们的设备的建议。
有关于 Swarmkit 和图形硬件的讨论,包括:
- (问题)添加对 Swarmkit 通用资源 #33439 的支持: https ://github.com/moby/moby/issues/33439
- (合并 PR)添加通用资源 #5416:https ://github.com/docker/docker.github.io/pull/5416
但是,我一直无法将这些提炼成解决方案。
一个在 swarm 中未运行时成功连接到该设备的 docker run 命令如下所示:
docker run -ti \
-e XDG_RUNTIME_DIR=/tmp \
--device=/dev/dri/card0:/dev/dri/card0 \
--device=/dev/dri/renderD128:/dev/dri/renderD128 \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
<docker-image> bash
但同样,这是容器、群和设备映射的一般问题,与此特定设备无关。
我们正在使用 docker compose file version 3,并尝试了device
按预期失败的“”选项:
https ://docs.docker.com/compose/compose-file/#devices
“在使用(版本 3)Compose 文件以 swarm 模式部署堆栈时,此选项将被忽略。”
我很感激你的帮助。