bash - Nvidia-Docker2 不会安装在 Cloudformation UserData bash 脚本中

标签 bash aws-cloudformation ubuntu-18.04 nvidia-docker

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

前两个依赖项按预期安装,运行一段时间后可以通过 1) nvidia-smi 进行验证,和docker --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在命令终端中顺利(或任何用户提示或任何东西)。

任何人都可以帮我弄清楚如何解决此问题,或者有人在我上面分享的内容中发现任何潜在的问题吗?到文件的标准输出管道是我所知道的调试此类问题的唯一技巧。如果我可以更新/编辑这篇文章以使这个问题更容易调试,请告诉我。

最佳答案

基于评论。

该问题是由于添加 nvidia-docker2 存储库后未更新 ubuntu 的存储库而导致的。

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

关于bash - Nvidia-Docker2 不会安装在 Cloudformation UserData bash 脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64357252/

相关文章:

ubuntu-16.04 - 如何忽略 Systemd 中 'ExecStart' 的失败

bash - 在 shell 提示符下键入文本

linux - 我如何搜索 > 进入 bash 脚本

bash - 进程替换捕获stderr

aws-cloudformation - 有没有办法为特定链接帐户创建 CloudWatch 账单警报

amazon-web-services - 如何使用 CloudFormation 的自定义资源创建 AWS EMR 安全配置?

python - 更新 AWS Elastic Beanstalk 解决方案堆栈名称

regex - 在 bash 中解析类似 .csv 的文件

wordpress - 如何将 SSL 到 WordPress 网站添加到 Digital-ocean Apache Ubuntu 18.04

php - phpmyadmin 中的错误 - `mysqli extension is missing`