Docker帮助请求:我正在尝试将Swarm中的容器连接到/dev
中的设备。在docker容器中运行时,该连接可通过设备映射正常工作,但是我们无法连接到Swarm节点内的设备。
该设备恰好是图形硬件,可以在我们的Gstreamer管道中使用vaapi驱动程序,并且位于此处:/dev/dri/renderD128
,但这是从群集中的容器连接到任何设备的通用问题。
我正在寻找有关通过Swarmkit通用资源映射到我们设备的外观的建议。
有关Swarmkit和图形硬件的讨论包括:
https://github.com/moby/moby/issues/33439
但是,我无法将它们提炼成解决方案。
当不在群集中运行时,一个可以成功连接到该设备的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文件版本3,并尝试了“
device
”选项,该选项失败了:https://docs.docker.com/compose/compose-file/#devices
"This option is ignored when deploying a stack in swarm mode with a (version 3) Compose file."
感谢您的帮助。
最佳答案
你见过https://github.com/NVIDIA/nvidia-docker/issues/141#issuecomment-356458450吗?
借助17.12.0-ce,您可以配置docker守护程序,以将GPU暴露给大量用户。
现在使用'docker service'支持它,但是据我所知,在docker-compose中还没有--generic-resource等效项。
编辑:实际上在撰写3.5中有支持:
generic_resources:
- discrete_resource_spec:
 kind: 'gpu'
 value: 2
[https://github.com/docker/cli/commit/1ff73f867df382cb5a19df4579da3570f4daaff5]
关于docker - Docker Swarm通用设备资源连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141284/