简单总结一下如何搭 Nvidia Docker

为了用 TensorFlow 的一些新特性,需要 CUDA9,但 Debian9 死活都装不上 CUDA9……

那只好搭个 Docker 试试了

写在前面:Docker 依赖宿主机的 Nvidia 驱动……所以原始设想 “Docker 里面用 CUDA9、宿主机用 CUDA8” 是不太可能了……

安装 Docker CE

这里,找到对应的平台(比如 Debian),安装依赖和 Docker

其实可以仔细找一下,直接下载 deb 安装包进行安装的……

或者官方有一个一键脚本: curl -sSL https://get.docker.com | sh

安装 Nvidia 驱动

这个…… 略吧…… 个人不喜欢使用 run-file 进行安装。使用 deb 包多简单啊,而且每次有更新都会自动编译内核扩展。

安装 Nvidia Docker

这里,找到对应的架构,进行安装

然后

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

最后测试一下

sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

不想每次都加 sudo

sudo usermod -aG docker $USER

然后登出再登入。建议是将所有需要用 Docker 的人都加入到这个组。

备选方案在 这里

国内镜像源

鉴于国内网络现状…… 请参考这篇文章

写在最后

>>> docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=all --compute --utility --require=cuda>=9.0 --pid=10062 /var/lib/docker/overlay2/8da50ece4814e8f661d98244f823834c2d30ddeeede2d415bf5ed0498c35955f/merged]\\\\nnvidia-container-cli: requirement error: unsatisfied condition: cuda >= 9.0\\\\n\\\"\"": unknown.

什么鬼!!!Docker 里面的 CUDA 是依赖宿主机的 CUDA 的!!!

也就是说,想要 “宿主 CUDA8,Docker CUDA9” 是不可能的!!!

好了安心看贝叶斯去了……

参考资料

留下评论