在Docker中搭建centos7远程桌面环境(Xfce、Gnome两种方式)

前言

本文提供两种安装方式,均自己测试过,最后还是选择了Xfce,因为它比较轻量级,占用资源较少。大家也可以都试试,比较感受下。

一、基于GNOME构建远程桌面

GNOME 提供一个现代、直观的用户界面,注重美观和用户友好性。GNOME 通常相对较重,对系统资源的需求较高,GNOME 是一个大型的开源社区项目,内部应用完整。这意味着在性能较低的硬件上可能会感觉较为占用资源,会出现比较卡顿情况,比如我只分配虚拟机2核2G资源,安装连接后桌面就挺卡的,但还是更清晰,功能更完整的,所以看自己资源选哪个。

docker pull centos:7	# 拉取镜像

docker run --name centos-desktop-gnome --privileged -d -p 3389:3389 --ulimit memlock=-1 -td centos:7 /usr/sbin/init	# 启动容器, 并暴露端口,远程桌面端口是3389

docker exec -it centos-desktop-gnome bash	# 进入容器环境

yum grouplist	# 查看支持的环境

yum groupinstall GNOME Desktop -y	# 安装gnome环境,这个挺大的

yum install -y epel-release	# 感兴趣可以查下epel-release和xrdp

yum install -y xrdp

systemctl start xrdp	# 启动xrdp

systemctl enable xrdp	# 开机自启

netstat -ntlp |grep xrdp	# 检查是否启动成功

passwd	# 设置登录密码,然后本地windows输入ip和用户名连接即可

systemctl stop firewalld	# 若连不上,很可能就是没关闭防火墙,要注意!!!虚拟机防火墙,容器防火墙

本地windows用远程桌面连接masterIp后,因为最初已经设置了端口映射,所以能直接访问到部署的容器。

连接上后,远程桌面启动终端,ifconfig命令没有的话,可以输入命令
yum install -y net-tools安装一下,这就成功了
在这里插入图片描述

如果你想把这个镜像打包,可以再执行下面操作

docker stop <container_name_or_id>	# 确保容器处于停止状态

docker commit <container_name_or_id> <new_image_name>	# 创建新镜像

docker images	# 查看所有镜像

docker start container_name	# stop后可用start再启动

这个镜像打包出来,查看镜像发现差不多2.5G,真的大,主要是资源占用比较多,分配内存小,远程桌面用起来贼卡

二、基于Xfce构建远程桌面(轻量级)

Xfce 是一个轻量级、快速、而且资源占用相对较少的桌面环境。它提供了一些基本的桌面功能,但相较于 GNOME 来说,它更注重性能和资源效率,所以用这个再试试。

docker pull centos:7	# 拉取镜像,若已拉取则无需再拉取

docker run --name centos-desktop-xfce --privileged -d -p 3389:3389 --ulimit memlock=-1 -td centos:7 /usr/sbin/init

docker exec -it centos-desktop-xfce bash

yum install -y epel-release

yum install -y xrdp

yum groups install -y Xfce	# 基于上面epel-release,得先安装它

yum install -y cjkuni-ukai-fonts	# 中文字体

yum install vim	# 安装vim编辑器

vim ~/.Xclients

# 编辑如下内容
#!/bin/bash
XFCE="$(which xfce4-session 2>/dev/null)"
exec "$XFCE"

chmod +x ~/.Xclients	#执行权限

systemctl start xrdp	# 启动

systemctl enable xrdp	# 开机自启

passwd	# 设置登录密码

安装成功后,本地windows连接进入后,虽然没Gnome那么高清,相比模糊一丢丢,但一点也不卡,进入或操作都很流畅,果然是轻量级

在这里插入图片描述

然后也按照之前方式打包镜像,大小是1.55G,少了1G
在这里插入图片描述

拓展:若想直接用这种自制Linux桌面环境,只要基于centos7作为基础,再加入桌面化环境,并打包成镜像,就可以上传到远程仓库,然后以后拉取这个打包后的新镜像自动部署即可。

docker save -o <文件名.tar> <镜像名称>:<标签>	# 将镜像压缩保存

docker load -i <文件名.tar>	# 在新的Linux环境加载安装镜像

docker images	# 查看镜像列表

可能存在的问题
如果用docker commit构建出现k8s集群中创建pod选中构建的容器一直无法启动,排除自身人为制作镜像的错误后,很大可能是因为没有EntryPoint,导致容器运行起来后,由于没有常驻进程,就立马退出,于是状态就一直crackbackoff。

解决办法
vim Dockerfile 后编辑以下内容

FROM centos7-desk:tag	# 自己制作的镜像
# 设置 ENTRYPOINT
ENTRYPOINT ["/usr/sbin/init"]

在DockerFile所在目录输入

docker build -t final-image:tag .

用这个构建的新镜像即可,新镜像加入了ENTRYPOINT

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小样x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值