nvidia驱动 && docker镜像cuda ,anaconda,pytorch下载ubuntu20.04&&pycharm远程连接远端服务器docker中的conda环境(完整操作)

avatar
作者
猴君
阅读量:7

内含一整套操作,从设置容器到远程连接。

操作环境:

服务器:ubuntu 20.04

本机:win10

IDE:pycharm 专业版

1.nvidia驱动下载

下载驱动很容易的,下面我们来介绍一种最简单的方法。

sudo ubuntu-drivers devices  #显示可用驱动  sudo apt install nvidia-driver-525  #我这里选择的是525,大家按需操作即可  reboot  # 需要重启一下  nvidia-smi #验证是否有驱动

 

 插个小曲,删除驱动代码

 sudo apt-get remove --purge nvidia*

 2.docker下载  参考

参考网站里有很详细的解说,我们只再列出需要的代码。

sudo apt update #更新软件包  apt-get install ca-certificates curl gnupg lsb-release #安装docker依赖  curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - #添加Docker官方GPG密钥  sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #添加Docker软件源  apt-get install docker-ce docker-ce-cli containerd.io #安装docker  sudo usermod -aG docker $USER #配置用户组(可选)可以不用sudo命令了,重启生效  systemctl start docker #运行  apt-get -y install apt-transport-https ca-certificates curl software-properties-common #安装工具  service docker restart #重启docker  sudo docker run hello-world #拉取hello-world  sudo docker images #显示拉取镜像

 当输入这个命令时 sudo docker run hello-world ,出现下图就说明可以了。

 注意:第一次udo docker run hello-world这个时,显示docker镜像没有hello-world,第二次拉取的时候才有,如图。不知道为什么。。。

3.安装nvidia-docker

$ 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软件包并重新加载docker守护程序配置 $ sudo apt-get install -y nvidia-docker2 $ sudo pkill -SIGHUP dockerd

4.拉取cuda镜像(参考)

主要说明以下几个版本的不同之处,其他的按需索取即可,推荐devel版docker拉取cuda官网

  1. nvidia/cuda:11.1.1-cudnn8-runtime:

    • 这是一个运行时镜像,适用于在已安装 CUDA 11.1.1 和 cuDNN 8 的环境中运行深度学习应用程序。该镜像包含运行时所需的库和工具,但不包含开发工具或头文件。
  2. nvidia/cuda:11.1.1-cudnn8-devel:

    • 这是一个开发镜像,适用于在已安装 CUDA 11.1.1 和 cuDNN 8 的环境中进行深度学习模型的开发。该镜像包含了编译和构建深度学习代码所需的开发工具、头文件和库。
  3. nvidia/cuda:11.1.1-base:

    • 这是一个基础镜像,提供了 CUDA 11.1.1 的基本环境,但没有安装 cuDNN 库。它可能适用于一些不依赖 cuDNN 的 CUDA 应用场景,或者用于构建自定义的 CUDA 环境。
    • nvidia/cuda:11.1.1-cudnn8-devel-ubuntu20.04: 

      • 这个版本在基础的 CUDA 11.1.1 和 cuDNN 8 的开发环境基础上,还基于 Ubuntu 20.04 操作系统。这使得该镜像不仅包含了 CUDA 和 cuDNN 的开发工具,还提供了 Ubuntu 20.04 操作系统的环境。

 5.使用docker镜像,创建环境

#进入镜像,一定要有--gpus才能使用显卡   sudo docker run --gpus all -it nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04   #如果有多显卡,使用部分可以用 --gpus device=0,1这个设置哦 sudo docker run --gpus device=0,1 -it nvidia/cuda:11.6.2-cudnn8-devel-ubuntu20.04  exit #退出镜像

5.1安装anaconda

这一部分看了网上很多的教程,看的我头晕,也走了不少弯路,这个应该是我总结出来的最简过程。

apt-get upgrate  or apt update #更新软件包  wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh #下载anaconda  #有可能没有这个包 apt-get install wget 即可  bash Anaconda3-2021.11-Linux-x86_64.sh  sha256sum Anaconda3-2021.11-Linux-x86_64.sh  #运行 sha256sum 命令来验证哈希值  source ~/.bashrc #激活安装  conda info  #查看信息

 安装文件

 下载anaconda

 路径可自定义

 conda init 【yes】  忘记选了?没事,下面教你解决

 

 这里找不到conda命令。

vim ~/.bashrc #这里可能也没有vim,下载一个

 打开后在文件末尾加上

export PATH="/root/anaconda3/bin:$PATH"  #该路径实际为你的真实路径  source ~/.bashrc  #更新配置

 

 5.2创建pytorch环境

conda create -n myenv python=3.xx

 

 创建完环境需要激活,可是上面的conda init忘记选了!

 输入这几行就好了

root@2aa338b11794:/dockerfile# conda info | grep -i "zncuda11.6" root@2aa338b11794:/dockerfile# source ~/anaconda3/etc/profile.d/conda.sh root@2aa338b11794:/dockerfile# conda activate zncuda11.6 

 下面大家就可以下载torch了,记得和镜像的cuda环境一致哦,官网

 这样就下载好了

 5.3打包容器

先exit退出当前镜像。

docker ps -a #查看有哪些容器

docker commit contain_id newimagename  docker images #看看新的镜像有没有在

 好的,下面进去就好了,环境什么的,都还在

 

 

6.pycharm远程连接远端服务器docker中的conda环境参考教程

插播一句: pycharm必须是专业版哦,社区版没有这个功能。

6.1 端口映射

如果有非局域网需求的,先看这里哦。两篇文章结合一起看,问题解决一大半。pycharm 非局域网下 远程连接服务器docker中的conda环境-CSDN博客

ssh远程连接服务器的端口是22,docker中的ssh端口也是22所以就需要端口映射,

docker run --name test4 -it -v /home/xxfs/project/test4:/yolov5 -v /home/xxfs/project/dataset_test4:/dataset -p 10022:22 --gpus all --ipc=host e1ff5e8cfa9f 
  • -v:深度学习任务一般挂两个文件夹,一个存放数据集,一个放代码。
  • -p 端口映射,10022(服务器端口)  22(docker)端口。
  • --ipc=host 后面这个是容器的id   e1ff5e8cfa9f

 上面是test现在是test4,其中走的都是弯路阿!

 由于anaconda默认下载路径是root目录下,大家适当放权阿 

chmod -R 777 dir  #文件夹下文件及目录全部修改权限 chmod 777 filename #修改文件权限 注 777或者775都是可以的

 

docker环境里会有anaconda的一系列文件但是只打开文件、你会的发现空空如也,可能是因为docker环境不保存在实际目录下,只能通过映射或者容器内才能有文件。 

 6.2ssh配置

(base) root@429358b64bf3:~# apt update (base) root@429358b64bf3:~# apt install -y openssh-server (base) root@429358b64bf3:~#  mkdir /var/run/sshd mkdir: cannot create directory '/var/run/sshd': File exists (base) root@429358b64bf3:~# echo 'root:123' | chpasswd (base) root@429358b64bf3:~# sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config (base) root@429358b64bf3:~# sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd (base) root@429358b64bf3:~# echo "export VISIBLE=now" >> /etc/profile (base) root@429358b64bf3:~# service ssh restart  * Restarting OpenBSD Secure Shell server sshd  

还需要下载openssh-server哦,要不然pycharm远程连接不了哦

apt-get install openssh-server vim /etc/ssh/sshd_config   #PasswordAuthentication yes # 改成yes service ssh --full-restart

exit退出容器,看看端口是否映射成功

xxfs@xxfs:~ $ sudo docker ps -a CONTAINER ID   IMAGE                                         COMMAND                  CREATED          STATUS                      PORTS     NAMES 429358b64bf3   e1ff5e8cfa9f                                  "/opt/nvidia/nvidia_…"   17 minutes ago   Exited (0) 7 minutes ago              test4 xxfs@xxfs:~ $ docker start 429358b64bf3  429358b64bf3 xxfs@xxfs:~ $ sudo docker port 429358b64bf3 22/tcp -> 0.0.0.0:10022 22/tcp -> [::]:10022 

 

 像这样带有端口号的就成功拉

6.3进入容器,查看并编辑信息。

xxfs@xxfs:~ $ docker exec -it 429358b64bf3  /bin/bash  #进入容器  (base) root@429358b64bf3:/# hostname -i  #获取容器内的ip地址   (base) root@429358b64bf3:/# vim /etc/ssh/sshd_config  # 设置配置文件  PermitRootLogin yes  (base) root@429358b64bf3:/# service ssh restart  * Restarting OpenBSD Secure Shell server sshd                                                                                                      [ OK ]  (base) root@429358b64bf3:/# exit 

 

 6.4ssh连接

退出当前容器,看看能否链接上。在设置完PermitRootLogin yes后,如果还登不上去,你就嘎该思索一下,是不是用服务器的密码阿。别忘记了,上面修改过密码了哦。此时密码是123,你也可以自己设置密码哦,用这个命令或者passwd

(base) root@429358b64bf3:~# echo 'root:123' | chpasswd

 

 这次输入123,可以进去拉

 6.5 pycharm远程连接   参考教程

到这里docker容器的任务暂时结束了,下面就是配置pycharm拉。

首先菜单栏--》Tools--》Deployment--》Configuration

 点击右上角加号选择SFTP,输入名字

 

 

 然后到了这个页面,点击三个点,然后

 这样就是可以连上啦

 apply应用就可以了。

 

 然后ssh远程连接就好了

 然后一路next,链接到python解释器就好了

 然后添加python解释器,设置目录

 这边就可以自行上传文件了,upload就可以了

 比如说这个,上传一个a.py代码,是在服务器运行,但是是显示在自己的终端。很方便

 6.6pytharm远程下载包

 大家觉得有用可以点赞关注哦!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!