docker - Docker Swarm通用设备资源连接

标签 docker docker-compose intel docker-swarm vaapi

Docker帮助请求:我正在尝试将Swarm中的容器连接到/dev中的设备。在docker容器中运行时,该连接可通过设备映射正常工作,但是我们无法连接到Swarm节点内的设备。

该设备恰好是图形硬件,可以在我们的Gstreamer管道中使用vaapi驱动程序,并且位于此处:/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

  • 但是,我无法将它们提炼成解决方案。

    当不在群集中运行时,一个可以成功连接到该设备的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/

    相关文章:

    python - 版本冲突: (pip 9. 0.2(/usr/local/lib/python3.5/site-packages),Requirement.parse ('pip==9.0.1')

    mysql - Docker mysql 5.7 无法在 OSX 上启动

    docker - 在 dind 中从 armhf/ubuntu 构建时,回显 docker 文件中的文件失败

    deployment - Docker应用程序部署

    assembly - 为什么组装后的可执行文件大小相同

    assembly - 英特尔 JCC 勘误表 - 真的应该单独对待 JCC 吗?

    spring - 带有 SWI-Prolog 的 Docker 容器因 fatal error 而终止

    docker - 如何让 Docker 容器在系统启动时自动启动?

    docker - 为什么容器不能向另一个容器请求?

    driver - 我如何知道 Xorg 正在为我的视频卡使用哪个驱动程序?