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

一个图像应该与 nvidia-docker 一起运行,另一个应该与 docker 一起运行。

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

任何想法都会很棒。

最佳答案

更新:请先检查 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 组合。

10-06 10:16
查看更多