使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

矩池云虚拟机支持 Docker 使用,但是由于虚拟机目前不支持启动时传递环境变量来设置VNC、Jupyterlab 连接密码,所以我们没有创建相关基础镜像(设置固定密码容易泄漏),下面给大家介绍手动安装使用 VNC、Jupyterlab、CUDA等步骤,以便支持使用 OpenGL 等功能的使用,开启更完善和强大的功能体系。

租用机器

主机市场 https://matpool.com/host-market/gpu 点击如下按钮筛选支持 Docker 机器。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

选择一个机器进行租用。在这里我们选择 Ubuntu 20.04 Docker 镜像,并在高级选项自定义两个端口,一个 ssh 类型的 5901 端口(用于 vnc 连接使用),一个 http 类型的 8888 端口(用于 jupyterlab 服务使用),然后点击租用按钮。
使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

租用成功后,点击 SSH tab 下的点击复制按钮复制 SSH 命令,
使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

本地新建一个 Terminal/CMD/Powershell 依次输入上面复制的 SSH 命令和 SSH 密码连接服务器。

安装配置 VNC 软件

VNC 安装配置流程比较复杂,已经给大家整理成一个一键安装脚本了,内容如下。

首先服务器内使用 sudo su 指令切换到 root 帐号(密码就是租用页面 mat 密码),然后使用 vim 创建一个 vnc_install.sh,并粘贴下面脚本内容,然后使用 bash 指令运行即可。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

#! /bin/bash

set -e

# 1、安装vnc软件包
apt-get update && apt-get install -y libxfont-dev libfreetype6-dev dbus-x11 x11-xserver-utils && 
apt-get install -y tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension && 
apt-get purge -y light-locker 

# 2、配置 vnc
mkdir -p /root/Desktop /root/.vnc /root/vnc /root/.config/xfce4 && 
# 设置vnc启动脚本
echo '#!/bin/sh
PATH=/usr/bin:/usr/sbin:$PATH
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

exec /usr/bin/xfce4-session' > /root/.vnc/xstartup

echo '#!/usr/bin/env bash
export PATH=$PATH:/root/miniconda3/bin:/usr/local/cuda/bin

set -e
mkdir -p "$HOME/.vnc"
PASSWD_PATH="$HOME/.vnc/passwd"

if [[ -f $PASSWD_PATH ]]; then
    rm -f $PASSWD_PATH
fi

printf "${VNC_PASSWD}
${VNC_PASSWD}

" | vncpasswd -f >> $PASSWD_PATH

chmod 600 $PASSWD_PATH

vncserver -kill $DISPLAY &> /root/.vnc/vnc_startup.log 
    || rm -rfv /tmp/.X*-lock /tmp/.X11-unix &> /root/.vnc/vnc_startup.log 
    || echo "no locks present"

vncserver :1 -depth 24 -localhost no -geometry 1280x1024 &> /root/.vnc/no_vnc_startup.log' > /usr/bin/vnc_startup.sh
chmod +x /usr/bin/vnc_startup.sh
ln -s /usr/bin/vnc_startup.sh /root/vnc/vnc_startup.sh 

# 添加vnc桌面快捷方式
# Terminal
echo '[Desktop Entry]
Version=1.0
Type=Application
Name=Terminal
Comment=Terminal Emulator
Exec=xfce4-terminal
Icon=utilities-terminal
Path=
Terminal=false
StartupNotify=false' > /root/Desktop/terminal.desktop
# firefox
echo '[Desktop Entry]
Encoding=UTF-8
Name=firefox
Comment=firefox
Exec=/usr/bin/firefox
Icon=/usr/lib/firefox/browser/chrome/icons/default/default128.png
Terminal=false
Type=Application
StartupNotify=true
Categories=Application;Development;' > /root/Desktop/firefox.desktop

# 网盘
ln -s "/mnt/" "/root/Desktop/我的网盘"
chmod +x /root/Desktop/*.desktop
ln -sf /bin/sh /bin/bash
echo "TerminalEmulator=xfce4-terminal" > /root/.config/xfce4/helpers.rc

设置 VNC 开机自启

为了方便下次使用,我们可以使用 systemctl 将 vncserver 设置成开机自启服务,脚本如下,在服务器vim创建一个 vnc_enable.sh 脚本,将下面内容复制粘贴到文件,然后使用bash指令运行即可完成设置比开启 vncserver。注意将 VNC_PASSWD= 后,设置个复杂的密码。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

#! /bin/bash

set -e

# 创建 vncserver systemctl 启动脚本
echo '[Unit]
Description=Start VNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=root
Group=root
WorkingDirectory=/root
Environment="VNC_PASSWD=设置一个复杂点的密码"
ExecStart=/root/vnc/vnc_startup.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target' > /etc/systemd/system/vncserver.service

# 使用systemctl设置 vncserver 开机自启
sudo systemctl enable vncserver
sudo systemctl daemon-reload

# 启动 vncserver
sudo systemctl start vncserver

登录 VNC

前面已经配置并启动了 VNC 服务,VNC 登录链接就是我们租用页面 5901 端口的 Host:Port,如下图VNC链接就是:hz-t2.matpool.com:26318
使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

VNC 密码是你在 vnc_enable.sh 脚本中设置的密码,请设置一个复杂点的密码,避免被盗用

登录后即可正常使用啦~
使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

安装相关组件,查看显卡驱动里 OpenGL 版本。

apt install mesa-utils -y
glxinfo | grep "OpenGL version"

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

安装 Miniconda 和 CUDA

除了 VNC 常用的 Conda、CUDA 和 Jupyterlab 也给大家整理了安装脚本,内容如下。

首先使用 vim 创建一个 conda_install.sh,并粘贴下面脚本内容,然后使用 bash 指令运行即可。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

#! /bin/bash

set -e

# 安装 miniconda3 jupyterlab 创建虚拟环境
CONDA_ENV_NAME=myconda
PYTHON_VERSION=3.10
CONDA=/root/miniconda3.sh; 
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_23.11.0-2-Linux-x86_64.sh -O $CONDA && 
chmod +x $CONDA && $CONDA -b && /root/miniconda3/bin/conda init bash && /root/miniconda3/bin/conda clean -ya
/root/miniconda3/bin/python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && 
/root/miniconda3/bin/python -m pip install --no-cache-dir jupyterlab && 
/root/miniconda3/bin/conda create -n $CONDA_ENV_NAME python=$PYTHON_VERSION -y && 
/root/miniconda3/envs/$CONDA_ENV_NAME/bin/python -m pip install ipykernel && 
/root/miniconda3/envs/$CONDA_ENV_NAME/bin/python -m ipykernel install --user --name ${CONDA_ENV_NAME} --display-name ${CONDA_ENV_NAME}
rm $CONDA

# 设置环境变量
echo 'export PATH=$PATH:/root/miniconda3/bin:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64/:/usr/lib/x86_64-linux-gnu
source activate myconda' >> /root/.bashrc

Conda 和 CUDA 可以同步安装,具体方式是在 VNC 里在新建一个Terminal ,vim 创建一个 cuda_install.sh,并粘贴下面脚本内容,然后使用 bash 指令运行即可。(以下为安装 CUDA11.3 和 CUDNN 8.2 脚本,其他版本指令安装可以浏览器搜索相关安装指令,如有问题也可以联系矩池云小助手)

#! /bin/bash

set -e

# 安装 CUDA 11.3
curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/3bf863cc.pub | apt-key add - && echo "deb https://mirrors.aliyun.com/nvidia-cuda/ubuntu2004/x86_64/ /" > /etc/apt/sources.list.d/cuda.list

apt-get update && apt-get install -y --no-install-recommends libtinfo5 libncursesw5         cuda-cudart-dev-11-3=11.3.109-1 cuda-command-line-tools-11-3="11.3.1-1" cuda-minimal-build-11-3="11.3.1-1" cuda-libraries-dev-11-3="11.3.1-1" cuda-nvml-dev-11-3=11.3.58-1         cuda-nvprof-11-3=11.3.111-1 libnpp-dev-11-3=11.3.3.95-1 libcusparse-dev-11-3=11.6.0.109-1 libcublas-dev-11-3=11.5.1.109-1 cuda-nsight-compute-11-3=11.3.0-1

# 安装 CUDNN
apt-get update && apt-get install -y --no-install-recommends "libcudnn8=8.2.0.53-1+cuda11.3" "libcudnn8-dev=8.2.0.53-1+cuda11.3" && apt-mark hold "libcudnn8" 
rm -rf /var/lib/apt/lists/*

安装完成后输入source /root/.bashrc即可加载最新安装的 conda 环境了。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

Terminal 中输入以下指令启动 jupyterlab,注意:需要自己设置下 ${YOUR_TOKEN},可以设置一个相对复杂的,避免泄漏

nohup jupyter lab --notebook-dir=/ --allow-root --no-browser --NotebookApp.token=${YOUR_TOKEN} --ip=0.0.0.0 &

在VNC浏览器里输入127.0.0.1:8888后,输入自己设置 token 即可访问。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

或者自己电脑浏览器访问租用页面 Jupyterlab 链接,输入 token 后也可以访问。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

保存环境

配置好所有环境后,可以租用页面点击更多–>保存到个人环境,这样下次租用就不用重复配置了。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

从保存环境启动机器

再次租用的时候,从主机市场选择需要的机器,点击租用按钮,然后选择我的环境下自己保存的环境启动机器即可。

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...