docker & nvidia-docker 安装

分3步

  1. 安装 docker
  2. 安装 nvidia-docker
  3. 修改镜像存储位置

安装 docker

官方文档https://docs.docker.com/engine/install/centos/

1
2
3
4
#安装一些依赖
yum install yum-utils
#添加 repo
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

我在添加 repo 时运行yum-config-manager 报错 『No moudle named yum』。报错原因是 yum 使用的python 是 python2.7.5,而yum-config-manager使用的是2.7.2,修改为一致后解决问题

1
2
3
4
5
#安装 docker,如果之前有老版本的需要先卸载掉
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

#启动 docker
systemctl start docker

自此,docker 安装完成
可以用docker run hello-world 运行检查一下,但是我这个环境 docker pull一致连不上网,很奇怪,就没有运行这个。不过后面从别的机子上拷过来的镜像能正常运行,证明安装成功

安装 nvidia-docker

官方文档 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

1
2
3
4
5
6
7
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

yum clean expire-cache

yum install -y nvidia-container-toolkit

nvidia-ctk runtime configure --runtime=docker

依次运行上述命令,至此 nvidia-docker 的安装基本完成

1
2
3
4
5
#重启 docker
systemctl restart docker

#验证是否成功
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

自此可以在 docker 中使用 nvidia-gpu 了

但是目前还没有 nvidia-docker 的命令行工具,启动只能通过–runtime=nvidia --gpus all 的形式指定
所以接下来安装 nvidia-docker

1
2
#安装 nvidia-docker cli 工具
yum install nvidia-docker2

修改镜像存储位置

之前安装好的 docker 的默认镜像存储位置为 /var/lib/docker

但是/var目录一般空间较小,经常遇到存储空间不够的问题,所以需要换个位置存储

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#查看信息
docker info

#可以看到 docker root dir 是/var/lib/docker
######
#...
#Docker Root Dir: /var/lib/docker
#...
######


# 编辑docker 配置文件,添加 data-root 为/home/docker
vim /etc/docker/daemon.json

{
...
"data-root": "/home/docker"
...
}

# 修改完成后重启 docker
systemctl restart docker

修改完成后再次查看 docker info,会发现目录已经修改,可以随意 pull 了