Nvidia-Docker API 用于 Python?

Nvidia-Docker API for Python?

我目前运行正在使用 运行 大量类似的 Docker 容器,这些容器是由 Python 脚本通过官方 API 创建和 运行 的。由于 Docker 本身不支持 GPU 映射,我测试了 Nvidia-Docker,它满足了我的要求,但我不确定如何将它无缝集成到我的脚本中。

我试图使用 Google 和文档找到对 Nvidia-Docker 的正确 API 调用,但我没有找到任何有用的东西。

我当前的代码如下所示:

# assemble a new container using the params obtained earlier
container_id = client.create_container(img_id, command=commands, stdin_open=True, tty=True, volumes=[folder], host_config=client.create_host_config(binds=[mountpoint,]),detach=False) 
# run it 
client.start(container_id)

可以找到 API 的文档 here.

来自 Nvidia-Dockers Github 页:

The default runtime used by the Docker® Engine is runc, our runtime can become the default one by configuring the docker daemon with --default-runtime=nvidia. Doing so will remove the need to add the --runtime=nvidia argument to docker run. It is also the only way to have GPU access during docker build.

基本上,我想将 --运行time=nvidia-docker 参数添加到我的 create_container 调用中,但似乎没有对此的支持。

但是由于我需要在脚本执行期间多次切换 运行 次(混合 Nvidia-Docker 和本机 Docker 容器),快速而肮脏的方法是运行 使用 subprocess 的 bash 命令,但我觉得必须有更好的方法。

TL;DR:我正在寻找一种从 Python 脚本到 运行 Nvidia-Docker 容器的方法。

run()create() 方法根据 https://docker-py.readthedocs.io/en/stable/containers.html

具有 runtime 参数

这是有道理的,因为 docker cli 工具非常简单,每个命令都会转换为对 docker 引擎服务 REST 的调用 API