[分享] PVE LXC桌面一键创建脚本和镜像分享
写在前面
工作和学习中有的时候需要临时使用系统测试软件和环境,虽然现在的虚拟机能很方便安装,但是虚拟机很吃物理机的资源,多开几个主机资源就占得差不多了,并且虚拟机大多效率不太高,运行大型软件或者编译环境就感觉明显慢一大截。实际上,大多数应用隔离环境都不需要用虚拟机,相比之下,使用非虚拟化的隔离环境,相比较KVM虚拟机而言,资源占用和效率都将大大优化。PVE原生支持Linux LXC容器,使用起来和虚拟机没啥区别,但LXC一般都是跑单个或者多个应用,很少有拿来做桌面或者拿来当操作系统用。本教程提供了一些支持在LXC容器里面安装桌面的环境的一键脚本,也分享了一些安装好的LXC容器桌面镜像。
下面是LXC容器、Docker、KVM虚拟化的对比:
类型 | 隔离层级 | 实现原理 | 资源消耗 | 性能效率 | 安全性 |
---|---|---|---|---|---|
KVM虚拟化 | 虚拟化/硬件层 | 模拟CPU/GPU/BIOS | 非常大 | 较差 | 高 |
LXC容器 | 命名空间/内核层 | 系统内运行系统组件 | 较小 | 较好 | 中 |
Docker容器 | 命名空间/应用层 | 子进程运行隔离应用 | 很小 | 最好 | 较低 |
可以看到,LXC资源消耗和隔离程度都介于Docker和KVM中间,适合临时或者长期运行一个小型系统,比如实验室、开发机,用一台宿主机给多人共享,可以划分无数个虚拟机,每个虚拟机内互不干扰。
本教程脚本目前支支持Debian 12,后面会陆续支持Debian 13、Ubuntu 24/22、Fedora、Alpine这几个主流内核的系统,实现全覆盖
安装教程
0、安装PVE或者LXC环境
PVE下载地址:https://www.proxmox.com/en/downloads,安装教程参考官网
1、更换国内系统软件源
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade
2、方法1:导入LXC备份
1) 以PVE为例(如果你是其他系统安装的LXC环境,仅供参考)+Deepin桌面(其他桌面参考#镜像目录部分),下载镜像文件:
wget -P var/lib/vz/dump/ https://shared.pika.net.cn/d/Sources/PCDriver/Containers/LXC/vzdump-lxc-debian12-deepin.tar.zst
2) 将下载下来的LXC容器进行还原,并将原来的IP改为自己内网的IP,或者设置DHCP(注意:IPV6部分请设置SLAAC或者静态)
3、方法2:LXC手动安装
1) 去PVE新建一个CT容器,选择Debian 12镜像,自行设置节点ID、密码、主机名、网络,设置存储空间、CPU、内存资源等
基础系统模板在这里下载:
1) 执行下列命令,这里以Deepin桌面为例(其他桌面参考#镜像目录部分),安装桌面环境,一般需要耐心等待20~100分钟
sudo apt -y install curl && curl https://gh-bat.pika.net.cn/Linux/Desktop/LXC-Debian-Deepin.sh | bash -e
4、启动容器登录进桌面
打开RDP远程桌面连接,输入前面设置的容器IP,点击连接,如果有安全提示要信任,然后用户名:root
,密码:password
使用了RDP连接之后,就可以使用VNC(VNC Viewer,端口:5900)和No Machine(www.nomachine.com,端口4000)连接了
已知问题
- 本镜像兼容了VNC和No Machine,但镜像重启过后必须先使用RDP进入桌面一次,才能使用VNC和No Machine,否则会黑屏
镜像目录
镜像预览
1、Deepin桌面
2、Lingmo桌面
3、KDE Plasma
4、Xfce4 Lite
5、GNOME3桌面
6、MATEDE桌面
脚本来源
PIKACHUIM/CloudScripts: Docker Setup Tools for Linux/macOS/Windows