在docker搭建centos7远程桌面环境

2022-11-22  本文已影响0人  yichen_china

一、拉取获取centos7镜像

docker pull centos:7

可以从https://hub.docker.com/_/centos?tab=tags查询拉取需要的镜像版本

二、启动容器

指定容器的名称为centos-desktop-vnc,并暴露宿主机的5901来连接vnc

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

三、配置desktop环境

进入容器环境

docker exec -it centos-desktop-vnc bash

默认的镜像不带desktop环境,需要手动安装

3.1、查看支持的环境

会出现很多结果,我们这里选择的是gnome环境

 yum grouplist

3.2、安装gnome环境

yum groupinstall GNOME Desktop -y

3.3、配置系统默认的启动模式

我们这里需要设置启动模式为图形化

# 获取当前启动模式
systemctl get-default

# 修改启动模式为图形化
systemctl set-default graphical.target

# 修改启动模式为命令行
systemctl set-default multi-user.target

四、配置vnc服务端

4.1、安装vnc server、vim、net-tools

yum -y install tigervnc-server tigervnc-server-module vim net-tools

4.2、配置vnc server

cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service

vim /lib/systemd/system/vncserver\@\:1.service

将配置文件的<USER>修改为root,由于root的home路径是/root,不是/home/root,因此注意修改PIDFILE的路径
改好之后如下

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

vncpasswd

systemctl daemon-reload

# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1

netstat -lnpt|grep Xvnc

出现下图结果说明启动成功

image

4.2、关闭防火墙

# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld

五、vnc客户端发起连接

六、保存镜像

# 1、查询container id,出现的第一个字符串就是container id,我这里是4052d86631b0
docker ps -a | grep centos-desktop-vnc
# 2、提交作为本地镜像
docker commit 4052d86631b0 centos:7-vnc
上一篇 下一篇

猜你喜欢

热点阅读