You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Amazon Linux 2的Lambda容器安装CUDA:镜像选择与工具问题

问题

尝试在容器中安装CUDA,但由于public.ecr.aws/lambda/python:3.8镜像未包含wget,执行apt-get命令时出现错误:/bin/sh: apt-get: command not found。

Dockerfile内容如下:

# 拉取包含Python 3.8的Lambda基础镜像
FROM public.ecr.aws/lambda/python:3.8

# 将之前创建的requirements.txt文件复制到容器中
COPY requirements.txt ./

# 从requirements.txt安装Python依赖
RUN python3.8 -m pip install -r requirements.txt 

# 创建用于挂载EFS的模型目录
RUN mkdir -p /mnt/ml

# 安装CUDA
RUN apt-get install wget
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb
RUN dpkg -i libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb

# 将之前创建的app.py文件复制到容器中
COPY app.py ./
COPY maskrcnn/ ./maskrcnn

# 设置CMD为处理函数
CMD ["app.lambda_handler"]

当前使用Amazon Linux 2作为服务器,请问是否需要更换镜像才能在Docker中安装CUDA?如果需要,哪种镜像最为合适?


解决方案
  • 必须更换基础镜像:public.ecr.aws/lambda/python:3.8基于Amazon Linux 2构建,使用yum包管理器而非apt-get,且Lambda基础镜像做了大量精简,无法直接适配CUDA这类复杂依赖的安装。

  • 推荐的镜像选择:

    1. NVIDIA官方CUDA镜像 + 手动配置Lambda运行时:
      选用与目标CUDA、cuDNN版本匹配的NVIDIA官方 runtime 镜像,比如nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04(对应你要安装的CUDA 11.2和cuDNN 8.1),再手动安装Python 3.8及Lambda运行时依赖。这种方式能保证CUDA环境的兼容性,同时灵活适配Lambda需求。
      示例Dockerfile片段:
      FROM nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04
      # 更新包列表并安装Python 3.8
      RUN apt-get update && apt-get install -y --no-install-recommends python3.8 python3-pip
      # 设置Python 3.8为默认python3
      RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
      # 安装Lambda Runtime Interface Client(部署到Lambda必需)
      RUN pip3 install awslambdaric
      # 后续添加复制代码、安装依赖等步骤
      
    2. AWS Deep Learning Containers(DLC)镜像:
      AWS官方提供的DLC镜像已预装好CUDA、cuDNN、Python及深度学习框架,同时兼容Lambda运行时。可选择包含Python 3.8和对应CUDA版本的镜像,比如763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.9.0-gpu-py38-cu111-ubuntu20.04(需根据实际区域、CUDA版本调整)。这类镜像经过AWS优化,无需手动配置CUDA,适配性更强。
  • 关键注意事项:

    • 若部署到Lambda,必须确保镜像包含Lambda Runtime Interface Client,或使用Lambda兼容的运行时配置。
    • 基于Ubuntu的镜像使用apt-get包管理器,与你原有的CUDA安装命令兼容,修改成本低。

内容的提问来源于stack exchange,提问作者BodeTech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:32:53