Ubuntu 安装Docker和Pythorch

目录

背景

服务器配置

一、安装Ubuntu

二、安装NVIDIA驱动

1. 查看显卡硬件型号

2. 从 NVIDIA 官网下载最新版驱动手动安装

3.安装NVIDIA显卡的相关依赖

4.关闭Nouveau驱动

5.安装Openssh

6.安装下载的NVIDIA驱动

三、安装Docker

1.更换阿里镜像源

2.安装Docker

3.安装NVIDIA-Docker2

4.配置Docker

使用Anaconda安装Pytorch

1.下载Anaconda

 2.安装Anaconda

3.安装Pytorch


背景

        实验室有两台空闲的RTX2070super,所以想把一台改成GPU服务器,能让多人共同使用GPU资源而不相互干扰,同时系统资源分配比较灵活。经过一番踩坑,终于搭建了成功了,这里记录一下搭建的步骤。


服务器配置

  1. CPU: I7-9700K
  2. 内存: 32G
  3. 固态: Intel 760P 1T NVME固态
  4. 机械: 希捷2T
  5. 显卡: 2070Super


一、安装Ubuntu

        我选择的是最新的Ubuntu 20.04.3 LTS,先在官网下载Ubuntu的镜像,再使用Ubuntu官方推荐的Rufus工具把镜像文件创建成USB安装盘。在把U盘作为系统安装盘之前需要把U盘里的原本的东西备份下,因为作为系统安装盘需要先格式化U盘。

         之后把U盘插在服务器的电脑上,在开机时进入BIOS,根据不同的主机牌子,按ESC、F2、F12可以进入BIOS,进入后直接选择使用U盘启动,然后等待安装完成就可以了。

        Ubuntu官网下载地址:Download Ubuntu Desktop | Download | Ubuntu

        Rufus下载:Rufus - 轻松创建USB启动盘

        这是Ubuntu官方使用Rufus的教程:Create a bootable USB stick on Windows | Ubuntu


二、安装NVIDIA驱动

1. 查看显卡硬件型号

        输入下面的命令,可以查看自己的显卡型号,model后面的是显卡型号。

ubuntu-drivers devices

2. 从 NVIDIA 官网下载最新版驱动手动安装

        知道自己显卡型号后就可以去NVIDIA官网下载显卡对应的驱动了,我的显卡是NVIDIA 2070 Super,所以我这里选择GeForce RTX 20 系列,然后选GeForce RTX 2070 Super,操作系统选Linux 64位,然后点击开始搜索。搜索到该系列所有的驱动版本后,选择你需要的版本下载,我这里选择的是最新的驱动版本。下载完成后暂时先不要安装,放在一边。

        NVIDIA驱动下载官网:官方 GeForce 驱动程序 | NVIDIA

 

3.安装NVIDIA显卡的相关依赖

        需要64位系统对32位的支持,在终端依次执行如下命令:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install build-essential libc6:i386

4.关闭Nouveau驱动

        Ubuntu 系统默认安装好是使用的一个开源的驱动:Nouveau,首先说明下什么是Nouveau。Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,虽然没能得到NVIDIA的认可与支持,但是确实让Linux更容易的应对各种复杂的NVIDIA显卡环境。所以,很多Linux发行版默认集成了Nouveau驱动,我们要安装NVIDIA的官方驱动就需要先禁用这个开源驱动,不然就会提示“ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver……”之类的错误。

        禁用的方法如下,依次执行下面两条语句:

sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"

        执行完上面两条指令后,我们使用cat命令查看我们在blacklist-nvidia-nouveau.conf文件中的

写入,查看是否成功禁用了nouveau,如果和下面一样,表示成功了。

$ cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf
blacklist nouveau
options nouveau modeset=0

5.安装Openssh

        在禁用nouveau之后,需要重启系统才能使禁用生效。但是重启时,由于本身用于图形显示的驱动被我们禁用了,就会出现进入不了Ubuntu的图形化桌面,一直黑屏,在左上角有条白线一直闪烁的问题。

        在网上找了很多办法解决,操作起来都很麻烦,而且也没有成功。我发现黑屏的时候虽然没有图形化界面,但是是可以用别的电脑通过ssh访问这台电脑的,所以我们在重启之前先安装Openssh。安装步骤如下:

        更新源列表

sudo apt-get update

        安装openssh

sudo apt-get install openssh-server

        查看ssh服务是否启动

sudo ps -e |grep ssh	# sshd服务是否开启,开启说明启动成功

        安装完后,通过ifconfig可以看到这台计算机的IP地址,然后我们直接reboot重启。

6.安装下载的NVIDIA驱动

        重启后,如果出现了我们上面说的那种黑屏的情况,就使用另一台计算机通过ssh访问这台计算机,在另一台Windows电脑的终端里输入下面命令链接到我们要配置服务器的这台电脑:

ssh Ubuntu的用户名@Ubuntu电脑的IP地址
输入用户名对应的密码

        链接到服务器的电脑上后,进入到刚才下载的NVIDIA驱动目录下,执行下面的命令,安装驱动:

sudo bash 下载的.run驱动名字

        安装过程中会遇到下面的提示:

  • Are you sure you want to continue? -> CONTINUE INSTALLATION
  • dkms 安装最好 -> YES
  • Would you like to run the nvidia-xconfig utility? -> YES

        安装完后reboot重启服务器,等待重启后,应该就可以进入图形界面了,因为现在有了新的显卡驱动。使用命令 nvidia-smi 可以验证NVIDIA驱动有没有安装成功,出现下面的界面就是安装成功了。


三、安装Docker

1.更换阿里镜像源

        在Ubuntu上安装Docker文档:Install Docker Engine on Ubuntu | Docker Documentation

        我这里没有使用Docker官方的文档,因为官方的文档里的源地址在国内使用太慢了,所以这里换了阿里的源,换源的方法:

        备份sources.list(Ubuntu恢复文件很复杂,尽量避免直接删除系统文件):

 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

        修改sources.list,并替换阿里云镜像源:

 sudo gedit /etc/apt/sources.list
 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
 deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
 deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
 deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
 deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

 deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
 deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
 deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
 deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
 deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

        更新

 sudo apt-get update

2.安装Docker

        更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:

sudo apt-get install -y \
       apt-transport-https \
       ca-certificates \
       curl \
       software-properties-common 

        添加Docker官方GPG key

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

        验证key的指纹

sudo apt-key fingerprint 0EBFCD88

        添加稳定版repository

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

        更新apt包索引

sudo apt-get update

        安装最新版本的Docker CE

sudo apt-get install -y docker-ce

        验证Docker CE正确安装

sudo docker run hello-world

3.安装NVIDIA-Docker2

        添加repositories,依次执行下面的命令:

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

        安装nvidia-docker2并重新载入daemon.json

sudo apt-get install -y nvidia-docker2

        重新加载docker守护程序配置

sudo pkill -SIGHUP dockerd

4.配置Docker

        加入docker组,以允许非root用户免sudo执行docker命令

sudo gpasswd -a 用户名 docker

        如果不重启并重连ssh客户端的话,需要手动重启服务并刷新docker组成员

sudo service docker restart
newgrp - docker

        Docker换源,换存储路径,限制容器日志大小,先备份daemon.json

sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak

        修改daemon.json

sudo gedit /etc/docker/daemon.json

        安装完nvidia-docker后,daemon.json中的默认应该是这样的配置

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

        修改默认运行时为nvidia-docker,添加国内源,修改存储位置为/home/docker,限制日志大小后daemon.json为

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "registry-mirrors":[
        "https://kfwkfulq.mirror.aliyuncs.com",
        "https://2lqq34jg.mirror.aliyuncs.com",
        "https://pee6w651.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com"
    ],
    "data-root": "/home/docker",
    "log-opts": { "max-size": "50m", "max-file": "1"}
}

        保存退出,并在/home下建立docker文件夹

cd /home
sudo mkdir docker

        创建好后,重启使配置生效

reboot

        重启后使用docker info查看是否修改成功,输出信息应该和下面的差不多

...
Docker Root Dir: /home/docker
...
Registry Mirrors:
 https://kfwkfulq.mirror.aliyuncs.com/
 https://2lqq34jg.mirror.aliyuncs.com/
 https://pee6w651.mirror.aliyuncs.com/
 https://registry.docker-cn.com/
 http://hub-mirror.c.163.com/
 ...


四、使用Anaconda安装Pytorch

1.下载Anaconda

        Anaconda官网下载地址:Anaconda | Individual Edition

        选择Linux 64位的就可以下载就可以了

 2.安装Anaconda

        进入到刚才下载好的文件夹下,执行下面的命令运行安装:

bash Anaconda3-2021.11-Linux-x86_64.sh

        安装过程中有询问你是否安装的,输入yes

        安装完成后,收到加入环境变量的提示信息,输入yes

        安装完后重启即可使用conda命令

reboot

3.安装Pytorch

        Pytorch官网:PyTorch

        在Pytorch的官网,选择你要安装的平台和CUDA的版本,就可以找到使用anaconda安装pytorch的命令

        执行这一条命令就可以了,会帮你安装好pytorch和其他需要的包,接下来就是等待下载和安装。

        安装完成后,输入conda info --envs查看是否安装成功

        至此,所需要的环境都安装成功了。 

参考博客:使用Docker搭建实验室共享GPU服务器_技术杂谈-CSDN博客_docker实验室服务器

猜你喜欢

转载自blog.csdn.net/Sakuya__/article/details/121801378