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

租用机器

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

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

租用成功后,点击 SSH tab 下的点击复制按钮复制 SSH 命令,

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

安装配置 VNC 软件

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

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

#! /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}\n${VNC_PASSWD}\n\n" | 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= 后,设置个复杂的密码。

#! /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

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

登录后即可正常使用啦~

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

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

安装 Miniconda 和 CUDA

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

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

#! /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 环境了。

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 即可访问。

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

保存环境

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

从保存环境启动机器

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

使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA的更多相关文章

  1. 矩池云上编译安装dlib库

    方法一(简单) 矩池云上的k80因为内存问题,请用其他版本的GPU去进行编译,保存环境后再在k80上用. 准备工作 下载dlib的源文件 进入python的官网,点击PyPi选项,搜索dilb,再点击 ...

  2. 矩池云里查看cuda版本

    可以用下面的命令查看 cat /usr/local/cuda/version.txt 如果想用nvcc来查看可以用下面的命令 nvcc -V 如果环境内没有nvcc可以安装一下,教程是矩池云上如何安装 ...

  3. 矩池云上安装yolov4 darknet教程

    这里我是用PyTorch 1.8.1来安装的 拉取仓库 官方仓库 git clone https://github.com/AlexeyAB/darknet 镜像仓库 git clone https: ...

  4. 用端口映射的办法使用矩池云隐藏的vnc功能

    矩池云隐藏了很多高级功能待用户去挖掘. 租用机器 进入jupyterlab 设置vnc密码 VNC_PASSWD="userpasswd" ./root/vnc_startup.s ...

  5. 矩池云上安装ikatago及远程链接教程

    https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...

  6. 矩池云安装/修改 cuda、cudnn、nvcc、tensorRT 教程

    在整个机器学习的过程中,配置环境一直是一个比较复杂的事情,今天介绍几种根据英伟达官方文档来配置环境的方法. 安装方案 https://gitlab.com/nvidia/container-image ...

  7. 在矩池云上复现 CVPR 2018 LearningToCompare_FSL 环境

    这是 CVPR 2018 的一篇少样本学习论文:Learning to Compare: Relation Network for Few-Shot Learning 源码地址:https://git ...

  8. 矩池云上TensorBoard/TensorBoardX配置说明

    Tensorflow用户使用TensorBoard 矩池云现在为带有Tensorflow的镜像默认开启了6006端口,那么只需要在租用后使用命令启动即可 tensorboard --logdir lo ...

  9. 如何使用 PuTTY 远程连接矩池云主机

    PuTTY 是一款开源的连接软件,用来远程连接服务器,支持 SSH.Telnet.Serial 等协议. 矩池云的主机支持 SSH 登录,以下为使用 PuTTY 连接矩池云 GPU 的使用教程. 如您 ...

  10. 如何使用 VS Code 远程连接矩池云主机

    Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器.VS Code 支持代码补全.代码片段.代码重构.Git 版本控制等功能. VS Code 现已支持连接远 ...

随机推荐

  1. 基于.net Core+EF Core项目的搭建(一)

    在我们要使用EF的项目中引用两个包Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools 我把要使用的E ...

  2. SqlSugar分表

    一.使用场景 (1)可扩展架构设计,比如一个ERP用5年不卡,到了10就卡了因为数据太多了,这个时候很多人都是备份然后清空数据 (2) 数据量太多 ,例如每天都有 几十上百万的数据进入库,如果不分表后 ...

  3. Github最简单上传教程:真正的两分钟就可以学会! guitar

    相关链接: 码云(gitee)配置SSH密钥 码云gitee创建仓库并用git上传文件 git 上传错误This oplation equires one of the flowi vrsionsot ...

  4. [MySQL] 给root用户设置权限

    mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'roo ...

  5. 【C语言进阶】atoi函数的模拟实现【C的深度解剖】超详细的解释和注释

    [C语言进阶]atoi函数的模拟实现[C的深度解剖]超详细的解释和注释 那么这里博主先安利一下一些干货满满的专栏啦! 作者: #西城s 这是我的主页:#西城s 在食用这篇博客之前,博主在这里介绍一下其 ...

  6. Leetcode刷题第七天-回溯-哈希

    332:重新岸炮行程 链接:332. 重新安排行程 - 力扣(LeetCode) 机场字典:{起飞机场:[到达机场的列表]} 去重:到达机场列表,i>0时,当前机场和上一个机场相等,contin ...

  7. P9247 [集训队互测 2018] 完美的队列题解

    题目链接:[集训队互测 2018] 完美的队列 神仙数据结构题,看了很多题解才搞懂.在做此题之前,最好对分块很熟悉,对各类标记非常熟练.考虑题意说的种类是相对于全局的.我们可以考虑局部影响对全局影响. ...

  8. 利用显卡的SR-IOV虚拟GPU技术,实现一台电脑当七台用

    背景 虚拟桌面基础设施(VDI)技术一般部署在服务器,可以实现多个用户连接到服务器上的虚拟桌面.随着桌面计算机性能的日益提升,桌面计算机在性能在很多场景下已经非常富余,足够同时满足多个用户同时使用的需 ...

  9. MySQL主主同步环境出现1236错误

    环境: MySQL 5.7.25 主主架构 故障现象: 发现互相之间的同步均发生异常,两端均出现1236错误,在两个主节点上分别执行show slave status显示的关键信息如下: Master ...

  10. DNS转发器·

    实验介绍:dns转发器的作用 当客户端向dns1询问域名对应IP时,如果dns1不是该区域的授权域名服务器,则无法解析域名 dns1会根据转发器转发给dns3,如果dns3能解析,则返回给dns1. ...