使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA
矩池云虚拟机支持 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的更多相关文章
- 矩池云上编译安装dlib库
方法一(简单) 矩池云上的k80因为内存问题,请用其他版本的GPU去进行编译,保存环境后再在k80上用. 准备工作 下载dlib的源文件 进入python的官网,点击PyPi选项,搜索dilb,再点击 ...
- 矩池云里查看cuda版本
可以用下面的命令查看 cat /usr/local/cuda/version.txt 如果想用nvcc来查看可以用下面的命令 nvcc -V 如果环境内没有nvcc可以安装一下,教程是矩池云上如何安装 ...
- 矩池云上安装yolov4 darknet教程
这里我是用PyTorch 1.8.1来安装的 拉取仓库 官方仓库 git clone https://github.com/AlexeyAB/darknet 镜像仓库 git clone https: ...
- 用端口映射的办法使用矩池云隐藏的vnc功能
矩池云隐藏了很多高级功能待用户去挖掘. 租用机器 进入jupyterlab 设置vnc密码 VNC_PASSWD="userpasswd" ./root/vnc_startup.s ...
- 矩池云上安装ikatago及远程链接教程
https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...
- 矩池云安装/修改 cuda、cudnn、nvcc、tensorRT 教程
在整个机器学习的过程中,配置环境一直是一个比较复杂的事情,今天介绍几种根据英伟达官方文档来配置环境的方法. 安装方案 https://gitlab.com/nvidia/container-image ...
- 在矩池云上复现 CVPR 2018 LearningToCompare_FSL 环境
这是 CVPR 2018 的一篇少样本学习论文:Learning to Compare: Relation Network for Few-Shot Learning 源码地址:https://git ...
- 矩池云上TensorBoard/TensorBoardX配置说明
Tensorflow用户使用TensorBoard 矩池云现在为带有Tensorflow的镜像默认开启了6006端口,那么只需要在租用后使用命令启动即可 tensorboard --logdir lo ...
- 如何使用 PuTTY 远程连接矩池云主机
PuTTY 是一款开源的连接软件,用来远程连接服务器,支持 SSH.Telnet.Serial 等协议. 矩池云的主机支持 SSH 登录,以下为使用 PuTTY 连接矩池云 GPU 的使用教程. 如您 ...
- 如何使用 VS Code 远程连接矩池云主机
Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器.VS Code 支持代码补全.代码片段.代码重构.Git 版本控制等功能. VS Code 现已支持连接远 ...
随机推荐
- [转帖]egrep及扩展的正则表达式
egrep: egrep = grep -E 语法:egrep [选项] PATTERN [FILE...] 扩展正则表达式的元字符: 字符匹配: .:匹配任意单个字符: [ ]:匹配指定范围内的任意 ...
- [转帖]SHELL—— awk两个特殊模式(BEGIN 和 END)及awk高级应用(条件判断、循环)
一.Awk 的两个特殊模式 BEGIN 和 END,BEGIN 被放置在没有读取任何数据之前,而 END 被放置在所有的数据读取完成以后执行 体现如下: BEGIN{}: 读入第一行文本之前执行的语句 ...
- SQLSERVER 通过分离附加的方式迁移文件存储的位置.
有时候 SQLSERVER的数据库所在磁盘满了,或者是性能变的很差, 需要转换一下磁盘的位置. 这个时候最简单的办法是通过分离附加的方式进行处理. 0. 准备工作 0.1 备份-备份-备份 没有备份 ...
- echarts中x轴文字太长换行的几种方式
我们在使用echarts中,可能会遇见文字太长.导致显示不完全. 我们可以使用换行来处理 第一方式直接使用 \n 文字直接换行显示 使用\n <!DOCTYPE html> <htm ...
- 【K哥爬虫普法】大众点评VS百度地图,论“数据权属”对爬虫开发的罪与罚!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...
- C# 使用字典将枚举转换为String
枚举 public enum ColorType { Red = 10, Blue = 20, Green = 30, Yellow = 40, } String var A1 = "AAA ...
- Elasticsearch向量检索的演进与变革:从基础到应用
Elasticsearch向量检索的演进与变革:从基础到应用 1.引言 向量检索已经成为现代搜索和推荐系统的核心组件. 通过将复杂的对象(例如文本.图像或声音)转换为数值向量,并在多维空间中进行相似性 ...
- Markdown常用书写语法合集
1. 文字设置 1.1 文字颜色 中常用的文字颜色有: 红色文字:<font color="red">红色文字</font> 浅红色文字:<font ...
- 多智能体强化学习算法【一】【MAPPO、MADDPG、QMIX】
相关文章: 常见多智能体强化学习仿真环境介绍[一]{推荐收藏,真的牛} 多智能体强化学习算法[一][MAPPO.MADDPG.QMIX] 多智能体强化学习算法[二][MADDPG.QMIX.MAPPO ...
- STM32CubeMX教程29 USB_HOST - 使用FatFs文件系统读写U盘
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...