如何指定要在 docker-compose 版本 3 中使用的容器运行时?

How can I specify the container runtime to use in docker-compose version 3?

我正在开发一个需要 nvidia 运行时的容器。我可以在 v2.3 docker-compose 文件中指定此运行时,如下所示:

version: "2.3"
services:
  my-service:
    image: "my-image"
    runtime: "nvidia"
    ...

运行 docker-compose up my-service 工作得很好。我得到了 nvidia 运行时,一切正常。

我只是通过将“2.3”更改为“3”来尝试此操作,当我这样做时出现以下错误 docker-compose up my-service:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.my-service: 'runtime'

如果我删除 runtime: "nvidia" 行,这将毫无问题地出现——当然它没有使用 nvidia 并且我需要访问主机上的 GPU 以获得我想要的性能。

docker-compose v3 中是否有 runtime 的等效项?如果不是,为什么这个选项被删除了?提前致谢。 :)

我意识到这个问题很老了,但我昨天 运行 进入了它。

长话短说: 将您 docker-compose 升级到 1.27.0+

详情

在专门的 Docker 错误线程中,关于删除 runtime 关键字的讨论很多:https://github.com/docker/compose/issues/6691

最后,在 1.27.0 中,Docker 决定允许它返回。所以你只需要有 docker-compose.

的正确版本

我会推荐 pip 安装路径,因为它们的版本是最新的(Debian buster 中的当前 docker-compose 版本是 1.21)。 似乎有 other good reasons to do so, see here.