【超详细:从头开始的windows系统下的docker安装,在docker中建立ubuntu系统并配置pytorch深度学习环境,实现windows系统下访问ubuntu中的jupyterlab】

未知宇宙 2024-06-19 12:07:02 阅读 94

【超详细】从头开始的windows系统下的docker安装,在docker中建立ubuntu系统并配置pytorch深度学习环境,实现windows系统下访问ubuntu中的jupyterlab

一、windows系统下的docker安装

提示:安装docker将使用WSL2。参照了[Windows安装Docker 容器教程]与[Windows安装docker]进行技术梳理。(https://zhuanlan.zhihu.com/p/678736848)(https://blog.csdn.net/hjjshua/article/details/130520266)

1、windows环境配置

通过控制面板\程序和功能\启用或关闭windows功能,启动适用于Linux的Windows子系统和虚拟机平台。

在这里插入图片描述

重启电脑。

设置WSL默认为WSL 2

wsl --set-default-version 2

2、安装docker

从docker官网下载安装包Docker官网下载地址

在这里插入图片描述

下载完成后,获得Docker Desktop Installer.exe安装包。双击运行Docker Desktop Installer.exe,一路点击下一步即可,别额外操作。(最后一定要勾上WSL 2 代替Hyper-V,默认也是勾上的。)

启动 Docker Desktop,验证 Docker 是否正常运行。

在cmd或者PowerShell下执行命令验证 Docker 是否正常运行:

docker -v

docker compose version

docker run hello-world

在这里插入图片描述

docker images

可以看到列表中已经存在hello-world的镜像。

二、创建基于Ubuntu:20.04的docker容器

提示:参照[docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接](https://blog.csdn.net/laoxue123456/article/details/131259352?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-8-131259352-blog-107593330.235%5Ev43%5Epc_blog_bottom_relevance_base7&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-8-131259352-blog-107593330.235%5Ev43%5Epc_blog_bottom_relevance_base7&utm_relevant_index=13)

打开powershell输入以下命令创建容器

docker run -tid --gpus all -p 3316:22 -p 5900:5900 -p 5901:5901 -p 8889:8888 --name container_name -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --privileged=true ubuntu:20.04

意思是创建一个可以全整使用windows的GPU的ubuntu 20.04的容器,且给了三个转换接口(即在windows的3316对应Ubuntu的22、windows的8889对应ubuntu的8888,用处就在于配置ssh和jupyterlab的时候有大用)

创建成功后可以通过docker桌面看到容器和镜像。

也可以通过docker ps来查看运行中的容器。

docker ps

在这里插入图片描述

使用nvidia-smi命令验证时候使用到了宿主机的GPU资源。

nvidia-smi

在这里插入图片描述

在终端输入命令,进入ubuntu控制台。

docker exec -it container_name /bin/bash

三、配置ubuntu环境

1、在控制台中,更换ubuntu的下载源为阿里源,方便提升下载速度。

sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.listsed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.listapt-get cleanapt-get update

2、安装配置ssh的必要工具

apt updateapt install vimapt install openssh-clientapt install openssh-serverapt install net-tools

注:在运行apt install openssh-server的时候,可能会让选择时区,这里输入6选择Asia,再输入70选择Shanghai即可。

3、编辑sshd_config文件

vim /etc/ssh/sshd_config

进入sshd_config文件,按a进入编辑状态,在末尾添加PermitRootLogin yes,然后按Esc退出编辑状态,输入:wq退出文件。

在这里插入图片描述

5、给root用户设置密码

passwd root

注:输入的密码不会显示出来,输入密码后按回车即可。

6、启动并查看ssh

service ssh startps -e|grep ssh

7、设置ssh开机启动

vim /root/.bashrc# 在.bashrc末尾添加如下代码,方法同编辑sshd_config文件。service ssh start

四、配置用于深度学习的conda环境

提示:参照[新装Ubuntu系统基本环境安装配置(conda)](https://blog.csdn.net/Eyesleft_being/article/details/120138519?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171263848316800186516264%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171263848316800186516264&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-120138519-null-null.142%5Ev100%5Epc_search_result_base2&utm_term=ubuntu%E9%85%8D%E7%BD%AEconda%E7%8E%AF%E5%A2%83&spm=1018.2226.3001.4187)

在之前创建ubuntu容器的时候已经配置好了显卡驱动(即利用windows宿主机的显卡驱动)

这里直接安装cuda和cudnn

1、安装cuda

通过cuda版本显卡驱动版本对应关系cuda版本显卡驱动版本对应关系可以参考自身显卡驱动对应的cuda版本,从cuda下载地址找到并进行下载安装。(注:我的显卡是4090,为了和pytorch对应,选择的是12.1版本)

在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.runsh cuda_12.1.1_530.30.02_linux.run

进入安装界面后,选continue,然后输入accept,回车。在选项卡中,直接移动到选择Install即可(低版本选项卡中可能会有Driver一项,我们已有显卡驱动,将该项取消掉)。

在这里插入图片描述

若出现Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.请重新安装gcc和g++,再运行安装程序。

apt install gcc g++sh cuda_12.1.1_530.30.02_linux.run

命令跑完后,打开/usr/local应该是有cuda-12.1的文件夹。

2、配置cuda环境

配置cuda的系统路径,首先打开家目录下的.bashrc文件

vim ~/.bashrc

在文件的末尾添加以下内容

# added cuda pathexport PATH=/usr/local/cuda-12.1/bin${ PATH:+:${ PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注意把cuda-12.1改成自己的版本,操作方法同编辑sshd_config文件。

保存并关闭文件,完成配置。更新环境:

source ~/.bashrc#输入nvcc -V命令查看是否成功安装nvcc -V

3、安装cudnn

从cuDnn下载地址上下载对应版本的cudnn

在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2004-9.0.0_1.0-1_amd64.debdpkg -i cudnn-local-repo-ubuntu2004-9.0.0_1.0-1_amd64.debcp /var/cudnn-local-repo-ubuntu2004-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/apt-get update#cuda11apt-get -y install cudnn-cuda-11#cuda12apt-get -y install cudnn-cuda-12#其他版本apt-get -y install cudnn

根据自己的cuda版本情况来安装,执行完上述命令后,cuDNN 就安装好了。

通过nvcc –V命令来检查,显示Cuda compilation tools, release 12.1, V12.1.105则表示成功。

4、安装conda

这里是安装miniconda。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh

安装过程中开始按回车,一直按住回车直到输入yes。遇到让更改路径可以不更改,直接回车。然后遇到问题输入yes,回车。

在这里插入图片描述

在这里插入图片描述

然后把anaconda添加到用户环境变量中(对应conda的bin文件位置)。vim ~/.bashrc打开配置文件,在末尾加上下面这句话。

vim ~/.bashrc

#在文件末尾添加环境变量,并保存退出,方法同编辑sshd_config文件export PATH="/root/miniconda3/bin:$PATH"

退出后更新一下,并使用conda -V检查时候安装成功。

source ~/.bashrcconda -V

5、安装pytorch

从pytorch官网pytorch官网找到对应版本的pytorch

在这里插入图片描述

注:这也是我为什么装cuda12.1的原因,可以适配pytorch。

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

至此,深度学习环境配置完毕。其余的python包根据需求自行下载。

五、配置jupyter lab

1、升级pip,通过pip安装jupyter lab

python -m pip install --upgrade pippip install jupyterlab

2、安装好jupyerlab后,生成配置文件

jupyter lab --generate-config

在这里插入图片描述

生成配置文件的/root/.jupyter/jupyter_lab_config.py

3、配置jupyter server 的密码

jupyter server password# 接着输入密码

生成配置文件/root/.jupyter/jupyter_server_config.json

4、编辑配置文件的/root/.jupyter/jupyter_lab_config.py

mkdir /home/lab #创建一个专门放jupyter代码的根目录vim /root/.jupyter/jupyter_lab_config.py

在文件内添加:

# 允许通过任意绑定服务器的ip访问c.NotebookApp.allow_root = Truec.ServerApp.ip = '0.0.0.0' # 用于访问的端口c.ServerApp.port = 8888 #注意这里与前面开出的容器端口要一致c.ServerApp.allow_origin = '*' # 不自动打开浏览器c.ExtensionApp.open_browser = False #允许远程访问c.ServerApp.token = ''c.ServerApp.allow_remote_access = Truec.AerverApp.root_dir = '/home/lab'

保存并退出,打开jupyter lab

jupyter lab

在这里插入图片描述

可以看到已经开始运行了,ubuntu上的访问接口为:http://127.0.0.1:8888/lab。之前我们设置了8889:8888,那么在windows的访问接口则为8889。

在windows浏览器中输入http://127.0.0.1:8889/lab可访问到jupyterlab中进行愉快代码编写。(遇到让输入密码则输入配置jupyter server 时设置的密码)

在这里插入图片描述

六、结束语

到这里整个基本的环境配置就完成了,就可以为所欲为的进行本领展示了。希望大家都能轻松愉快的完成配置。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。