Docker 组成相当于“docker run --gpu=all”选项

Ben*_*rth 29 docker-compose

docker run为了自动化用于启动 docker 容器的配置(参数),我正在编写一个docker-compose.yml文件。

我的容器应该能够访问 GPU,因此我当前使用docker run --gpus=all参数。公开 GPU 以供使用文档中对此进行了描述:

--gpus当您启动容器以访问 GPU 资源时包含该标志。指定要使用的 GPU 数量。例如:

$ docker run -it --rm --gpus 所有 ubuntu nvidia-smi

不幸的是,使用 Compose 启用 GPU 访问并没有准确描述此用例。本指南使用deployyaml 元素,但是在使用 GPU 预留机器的情况下。事实上,另一个文档说它将被忽略docker-compose

这仅在使用 docker stack deploy 部署到 swarm 时生效,并且会被docker-compose up 和 docker-compose run忽略。

Ben*_*rth 39

在尝试并解决了无数问题之后,我意识到这只是过时的文档。

将以下 yaml 块添加到 my 中docker-compose.yml即可nvidia-smi使用。

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
Run Code Online (Sandbox Code Playgroud)

  • 根据文档,设置 `count: all` 会为您提供所有 GPU。 (6认同)
  • 文档链接:https://docs.docker.com/compose/gpu-support/ (4认同)
  • 此后他们更新了文档:“以下子选项仅在使用 docker stack deploy 部署到 swarm 时生效,并且被 docker-compose up 和 docker-compose run 忽略,**资源除外**。”因此,他们的文档现在是“最新的”,但更加复杂。 (4认同)
  • 我实际上是通过复制粘贴此答案中的代码来开始每个新项目的。我只是记不起所有这些样板文件。 (2认同)