【问题标题】:use nvidia-docker from docker-compose使用来自 docker-compose 的 nvidia-docker
【发布时间】:2017-04-12 11:37:37
【问题描述】:

我想用 docker-compose 运行 2 个 docker 镜像。

一个图像应该使用 nvidia-docker 运行,另一个使用 docker 运行。

我看过这个帖子use nvidia-docker-compose launch a container, but exited soon 但这对我不起作用(甚至只运行一张图片)...

任何想法都会很棒。

【问题讨论】:

    标签: docker docker-compose nvidia-docker


    【解决方案1】:

    更新:请先检查 nvidia-docker 2 及其对 docker-compose 的支持 https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#do-you-support-docker-compose

    (我首先建议添加 nvidia-docker 标签)。

    如果您查看 nvidia-docker-compose 代码 here,它只会在查询 localhost:3476 上的 nvidia 配置后为 docker-compose 生成特定的 docker-file。

    你也可以手工制作这个 docker-compose 文件,因为它们非常简单,按照这个例子,用你的 nvidia 驱动程序版本替换 375.66 并放置尽可能多的 /dev/nvidia[n] 行,因为你有图形卡(没有尝试将服务放在单独的 GPU 上,而是去尝试!):

    services:
      exampleservice0:
        devices:
        - /dev/nvidia0
        - /dev/nvidia1
        - /dev/nvidiactl
        - /dev/nvidia-uvm
        - /dev/nvidia-uvm-tools
        environment:
        - EXAMPLE_ENV_VARIABLE=example
        image: company/image
        volumes:
        - ./disk:/disk
        - nvidia_driver_375.66:/usr/local/nvidia:ro
    version: '2'
    volumes:
      media: null
      nvidia_driver_375.66:
        external: true
    

    然后只需使用经典的 docker-compose 命令运行这个手工制作的 docker-compose 文件。

    也许您可以通过跳过其他服务中特定于 nvidia 的内容来与非 nvidia docker 组合。

    【讨论】:

    • 这对我有用,绝对是正确的答案。这是在哪里记录的,你知道吗?
    • 嗨!如果您的使用兼容,那么使用第 2 版的事情应该会变得更简单。我是从代码中计算出来的,但我猜 1.0 版最好来自 NVIDIA docker 文档:github.com/NVIDIA/nvidia-docker/wiki/…
    【解决方案2】:

    除了接受的答案之外,这是我的方法,有点短。 我需要使用旧版本的 docker-compose (2.3),因为需要 runtime: nvidia(不一定适用于 version: 3 - 请参阅 this)。设置 NVIDIA_VISIBLE_DEVICES=all 将使所有 GPU 可见。

    version: '2.3'
    
    services:
        your-service-name:
          runtime: nvidia
          environment:
            - NVIDIA_VISIBLE_DEVICES=all
          # ...your stuff
    

    我的示例可用here

    在 Debian 10 上的 NVIDIA Docker 2.5.0、Docker CE 19.03.13 和 NVIDIA-SMI 418.152.00 和 CUDA 10.1 上测试。

    【讨论】:

    • 根据链接Upgrade you docker-compose to 1.27.0+解决问题>3
    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    相关资源
    最近更新 更多