如何在启用 GPU 的 Azure 容器实例上 运行 docker 图像?

How to run docker image on GPU enabled azure container instance?

我创建了一个基于 python 的网络应用程序(使用 flask 和 gunicorn),其中包含一个基于 pytorch 的库,该库可以检测机器是否具有 CUDA GPU。我将此图像添加到 azure 容器注册表,然后使用具有 GPU 功能的 azure 容器实例来部署它。然而,当检查日志时,它告诉我它无法检测到 GPU。我在这里做错了什么?

用于创建图像的 Dockerfile 没有指定任何与 GPU 相关的内容。这是主要问题吗?

我在 windows(没有 gpu 功能)上创建了我的应用程序,但一直在使用带有 ubuntu linux 内核的 wsl2 来构建图像

所以主要问题确实是 Dockerfile。

支持GPU的Azure容器实例documentation指定要使用的某个基础镜像

我能够将我在 Dockerfile 中已有的内容与这个基础镜像结合起来构建我的最终镜像:

FROM python:3.7.8-slim as build
COPY requirements/common.txt requirements/common.txt
RUN apt-get update && apt-get install -y build-essential
RUN apt-get install -y cmake
RUN pip install -U pip && pip install -r requirements/common.txt

COPY ./api /app/api
COPY ./bin /app/bin
COPY wsgi.py /app/wsgi.py
COPY ./models /app/models

FROM nvidia/cuda:9.0-base-ubuntu16.04
COPY --from=build / /
COPY --from=build /app/wsgi.py /wsgi.py

WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["bash", "/app/bin/run.sh"] 

不过我不确定这是否是生产级别可接受的解决方案,但这是我发现唯一有效的方法。