预备工作:
确保服务器环境中已经安装了以下软件:
cuda、cucnn、nvidia驱动、nvidia-docker。
若还未安装,自行百度安装,网站教程很多。
查看各软件(驱动)版本:
nvidia驱动:
nvidia-smi
红框即为版本号
cuda
nvcc -V
注意:nvidia-smi显示的cuda version指其最高适配的cuda版本,并不一定要与你查到的cuda版本对应。但通常来讲cuda9.x已经无法支持30系列显卡驱动。建议升级
nvidia-docker:
普通用户需要sudo权限
sudo nvidia-docker version
正式配置:
以下命令大部分需要sudo权限,建议使用root用户:
sudo su
进行root权限
查看现存的docker镜像:
docker images
安装docker cuda:
最好与服务器的cuda环境保持一致,以免产生什么不必要的环境配置问题
1、网页搜索dockerhub
https://hub.docker.com/
搜索nvidia/cuda
在tags中找到自己对应的版本,建议选择devel,最为全面。
直接复制,然后在命令行黏贴,进行镜像源的拉取操作即可。(安装之前建议换阿里源,docker换源操作CSDN里很多,不赘述。)
2、使用安装的镜像查看宿主机的GPU
查看镜像ID
docker images
(便于演示,我安装了个base)
查看宿主机的GPU
nvidia-docker run --rm 2ec7084 nvidia-smi
–rm后的参数是镜像的ID前几位(能唯一识别镜像就可以)
利用docker filer定制镜像
为了提升创建的速度,需要更换apt的镜像源,这里建议使用清华的镜像(sources.list)
创建任意文件夹,文件夹下存放三个文件
Anaconda的安装驱动、Dockerfile、sources.list
1、anaconda的安装驱动可以度娘
2、sources.list可以选取清华镜像源
https://mirrors.tuna.tsinghua.edu.cn/
搜索ubuntu
点击上图上ubuntu上的?
选择对应的版本,copy到自己的sources.list中
3、Dockerfile
参考以下
FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04#换成自己的镜像名,可以使用docker images查看
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai
ADD sources.list /etc/apt/
RUN apt-get update && apt-get install -y --no-install-recommends \
bzip2 \
g++ \
git \
graphviz \
libgl1-mesa-glx \
libhdf5-dev \
openmpi-bin \
vim \
libopencv-dev \
libsnappy-dev \
python-dev \
python3-pip \
build-essential \
wget&& \
rm -rf /var/lib/apt/lists/*
ADD Anaconda3-5.3.1-Linux-x86_64.sh /home/anaconda.sh
RUN /bin/bash /home/anaconda.sh -b -p /opt/conda && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
ENV LANG C.UTF-8 LC_ALL=C.UTF-8
RUN mkdir /workspace
WORKDIR /workspace
CMD ["/bin/bash"]
准备完以上文件后
4、使用命令进行镜像创建
docker build -f Dockerfile -t nividia.cuda:v1 .
查看安装玩成的镜像
docker images
创建容器
nvidia-docker run -it --privileged=true --name test fc295 /bin/bash
name后面的test就是你创建的容器的名字
退出容器
exit
查看容器
docker ps -a
重启容器
docker restart name#name是你的容器名字或ID
进入容器
docker attach name#name是你的容器名字或ID