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

时间:2019-11-25 14:02:53

标签: docker-compose nvidia-docker

我正在一个需要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的等效项?如果没有,为什么放弃该选项?提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

我知道这个问题比较老,但是昨天我碰到了。

TL; DR: 将您的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