为无图形界面服务器构建独立图形桌面环境:多用户环境下用 Docker + NoMachine构建可远程访问的图形桌面(1)
在科研或者开发过程中,出于资源控制和多用户管理的需要,往往不会安装图形化桌面系统,用户只能通过命令行方式进行远程操作。这种情况下,如果你想运行一些需要图形化支持的软件(如 Gazebo、Blender、浏览器调试、图形界面调参工具等),由于服务器本身没装桌面,因此只能通过命令行交互,无法直接运行3D渲染软件。尤其是针对使用实验室集群服务器的情况,该如何在不影响其他用户的前提下为自己准备图形界面?
针对这一问题我们可以将完整桌面环境(基于 xfce4)封装在 Docker 容器中的方案,使图形界面运行于容器内部,并通过 NoMachine 在本地实现远程访问。
1.拉取镜像并创建容器
推荐使用支持 CUDA 的镜像:
docker pull registry.cn-hongkong.aliyuncs.com/gezp/ubuntu-desktop:20.04-cu11.7.1
这里使用了阿里云的仓库进行拉取,具体可以按照需求更改基础镜像;
创建容器并挂载你的数据目录:
docker run -d --restart=on-failure --cap-add=SYS_PTRACE --gpus all -dit \
--name XXX \
-v /home/XXX:/workspace \
-p 7869:22 \
--shm-size=30G \
registry.cn-hongkong.aliyuncs.com/gezp/ubuntu-desktop:20.04-cu11.7.1 \
/bin/bash
参数说明:
--gpus all 启用 GPU;
--shm-size=30G 防止图形程序因共享内存不足崩溃;
-v 参数表示挂载本地的路径到容器内,方便后续传输文件;
-p 7869:22映射 SSH 端口。
2.配置容器
这一步主要是创建
参考教程:
Ubuntu Desktop based on Docker:docker-ubuntu-desktop/README_cn.md at main · tcutee/docker-ubuntu-desktop
为无图形界面服务器构建独立图形桌面环境:多用户环境下用 Docker + NoMachine构建可远程访问的图形桌面(1)
https://talk2zbw.com/archives/ubuntu%20nomachine