一. 安装nvidia-docker2
0.首先确保本机的NVIDIA驱动正常工作
nvidia-smi
如果驱动正常可以看到您的GPU名称,驱动版本和最高支持的CUDA版本
1.使用命令将工具包的包存储库添加到您的系统:
1
| distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
2.在主机上安装nvidia-docker2
1 2
| apt-get update apt-get install -y nvidia-docker2
|
3.重启Docker进程
1
| sudo systemctl restart docker
|
二.查找Nvidia官方cuda镜像
cuda版本与驱动对照表
官方docker镜像地址
docker cuda版本选择
docker镜像名称为 [镜像名称]:<版本号>
例如:nvidia/cuda:11.4.0-devel-ubuntu20.04
三.使用Dockerfile打包
1.编写Dockerfile
1 2 3 4 5 6 7 8 9
| FROM nvidia/cuda:11.4.0-devel-ubuntu20.04 ENV TZ=Europe/Kiev RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone MAINTAINER seallhf sd185115@163.com ADD ./ ./ WORKDIR ./ RUN apt-get update RUN apt-get install ffmpeg libsm6 libxext6 -y RUN apt-get install libgl1 -y RUN apt-get install python3-pip -y RUN pip3 install -r requirements.txt ENTRYPOINT ["gunicorn", "-c", "gunicorn.py", "app:server"]
|
2.执行生成image
1 2 3 4
| # 构建Docker镜像。运行以下命令,将`<image_name>:<tag>`替换为您想要的镜像名称和标签: # docker build -t <image_name>:<tag> . # 例如 docker build -t myapp:latest .
|
3.查看已生成的image
1 2
| # 运行命令可看到刚刚生成的镜像 docker images
|
四.运行容器
1.启动容器
1 2 3 4
| # 使用构建好的镜像启动一个Docker容器。将`<host_port>`替换为您想在主机上映射的端口,将`<container_port>`替换为容器中的端口,并将`<image_name>:<tag>`替换为您的镜像名称和标签: # docker run -d -p <host_port>:<container_port> <image_name>:<tag> # 例如 docker run -itd --gpus all -p 8888:8888 myapp:latest
|
2.进入容器
1 2 3 4 5
| # 进入docker容器执行命令 docker exec -it myapp /bin/bash # 执行下面命令 nvidia-smi # 此时可在容器内看到您的GPU名称,驱动版本和最高支持的CUDA版本,说明docker容器已经使用gpu
|