1. Install nvidia-docker2 depends
1.1 update apt source
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update
1.2 install nivida-docker2
$ sudo apt-get install -y nvidia-docker2
1.3 restart dockerd
$ sudo systemctl restart docker
2. launch docker to get a container
$ docker run -it --gpus all nvidia/cuda:11.4.0-base-ubuntu20.04 nvidia-smi
2.1 选择基础镜像
使用其中一个nvidia/cuda标签是让您的 GPU 工作负载在 Docker 中运行的最快和最简单的方法。有许多不同的变体可供选择;它们提供了操作系统、CUDA 版本和 NVIDIA 软件选项的矩阵。这些镜像是为多种架构而构建的。
每个标签都具有以下格式:
- 11.4.0-base-ubuntu20.04
- 11.4.0 – CUDA version.
- base – Image flavor.
- ubuntu20.04 – Operating system version.
提供三种不同的镜像风格。该base镜像是基本 CUDA 运行时二进制文件的最小选项。runtime是一个功能更全面的选项,包括用于跨GPU通信的 CUDA 数学库和 NCCL 。第三种变体devel为您runtime提供了用于创建自定义 CUDA 镜像的所有内容以及头文件和开发工具。
如果其中一个镜像适合您,请将其用作Dockerfile. 然后,您可以使用常规 Dockerfile 指令来安装您的编程语言、复制源代码并配置您的应用程序。它消除了手动 GPU 设置步骤的复杂性。
FROM nvidia/cuda:11.4.0-base-ubuntu20.04
RUN apt update
RUN apt-get install -y python3 python3-pip
RUN pip install tensorflow-gpu
COPY tensor-code.py .
ENTRYPONT ["python3", "tensor-code.py"]
2.2 通过dockerfile创建挂载点
通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。还有一个区别是,通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的。
除非目录不需要绑定主机目录,否则不具备可移植性
#test
FROM ubuntu
MAINTAINER hello1
VOLUME ["/data1","/data2"]
查看命令: docker inspect
3. docker run permission
$ sudo gpasswd -a username docker #将普通用户username加入到docker组
$ newgrp docker #更新docker组