docker-撰写 v3.7。如何授予访问 GPU 服务的权限

docker-compose v3.7. How to give access to GPU for service

我有 docker-compose.yml 个包含我的应用程序配置的文件。

其中一项服务需要访问 GPU。 我单独构建了容器并使用命令 docker run -it --gpus=all <my_image> /bin/bash 非常简单地开始了一切。

但我需要使用 docker-compose 通过 GPU 访问启动此服务。

我的版本 docker-compose.yml - 3.7

如果我使用官方文档中的代码示例,则它们不起作用,例如这些:

services:
  test:
    image: tensorflow/tensorflow:latest-gpu
    command: python -c "import tensorflow as tf;tf.test.gpu_device_name()"
    deploy:
      resources:
        reservations:
          devices:
          - capabilities: [gpu]

docker-compose 在关键字 reservations

上抛出错误

请告诉我如何使用 docker-compose.yml 版本 3.7

为我的服务授予 GPU 访问权限

检查你的 docker-compose >= 1.28 版本,我遇到了类似的问题,更新后解决了。

来自documentation

Docker Compose v1.28.0+ allows to define GPU reservations

您可以查看 documentation 了解如何安装 docker-compose。然而,这对我有用:

检查您的版本(以确保这是问题所在)

$ docker-compose --version
docker-compose version 1.25.0, build unknown

版本应至少为 1.28。然后你可以通过运行以下命令安装最新的:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

启动一个新终端并再次检查版本:

$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c