Nvidia-Docker2无法安装在Cloudformation UserData bash脚本中

问题描述

我创建了一个cloudformation模板,希望通过必需的依赖项(其中这些依赖项在UserData中作为bash安装)来启动ec2实例,以利用docker容器中的GPU硬件。主要依赖项包括:1)nvidia驱动程序,2)docker和3)nvidia-docker2。

前两个依赖项按预期安装,并且在运行了片刻之后可以通过1)nvidia-smidocker --version进行验证。但是,第三个依赖项始终不会安装。

作为参考,以下是我的UserData bash的相关部分:

          # install gpu stuff
          apt-get install linux-headers-$(uname -r)
          distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
          wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
          mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
          apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
          echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
          apt-get update
          apt-get -y install cuda-drivers

          # install docker on system
          curl https://get.docker.com | sh
          systemctl start docker && systemctl enable docker

          distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
          curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
          curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list

          apt-get -y install nvidia-docker2 > /var/log/mason

          # add nvidia runtime stuff
          # echo "{ \"runtimes\": { \"nvidia\": { \"path\": \"/usr/bin/nvidia-container-runtime\",\"runtimeArgs\": [] } } }" >> /etc/docker/daemon.json

          systemctl restart docker

我尝试将标准输出从apt-get -y install nvidia-docker2传递到日志文件,但日志仅显示:

Reading package lists...
Building dependency tree...
Reading state information...

并且似乎被卡在那里。

其他潜在的帮助位:

  • AMI:ubuntu 18.04图片

我还将注意到,我能够通过SSH进入实例并在命令终端中安装apt-get -y install nvidia-docker2,而不会出现故障(或任何用户提示或任何内容)。

任何人都可以帮助我解决如何解决此问题,或者在我上面分享的内容中是否看到任何潜在的问题?到文件的stdout管道是我所知道的调试此类问题的唯一技巧。请让我知道是否可以更新/编辑这篇文章,以使此问题更易于调试。

解决方法

基于评论。

此问题是由于在添加nvidia-docker2存储库后未更新ubuntu的存储库引起的。

解决方案是在添加存储库后运行apt-get update

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...