拉取获取centos7镜像
代码语言:javascript复制docker pull centos:7
可以从https://hub.docker.com/_/centos?tab=tags查询拉取需要的镜像版本
启动容器
指定容器的名称为centos-desktop-vnc,并暴露宿主机的5901来连接vnc
代码语言:javascript复制docker run --name centos-desktop-vnc --privileged -d -p 5901:5901 --ulimit memlock=-1 -td centos:7 /usr/sbin/init
配置desktop环境
进入容器环境
代码语言:javascript复制docker exec -it centos-desktop-vnc bash
默认的镜像不带desktop环境,需要手动安装
查看支持的环境
会出现很多结果,我们这里选择的是gnome环境
代码语言:javascript复制yum grouplist
安装gnome环境
代码语言:javascript复制yum groupinstall GNOME Desktop -y
配置系统默认的启动模式
我们这里需要设置启动模式为图形化
代码语言:javascript复制# 获取当前启动模式
systemctl get-default
# 修改启动模式为图形化
systemctl set-default graphical.target
# 修改启动模式为命令行
systemctl set-default multi-user.target
配置vnc服务端
安装vnc server、vim、net-tools
代码语言:javascript复制yum -y install tigervnc-server tigervnc-server-module vim net-tools
配置vnc server
复制配置文件模板
代码语言:javascript复制cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
设置生效用户-修改配置文件
代码语言:javascript复制vim /lib/systemd/system/vncserver@:1.service
将配置文件的修改为root,由于root的home路径是/root,不是/home/root,因此注意修改PIDFILE的路径 改好之后如下
代码语言:javascript复制[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
修改vnc server密码
代码语言:javascript复制vncpasswd
生效vnc配置
代码语言:javascript复制systemctl daemon-reload
配置vnc开机启动
代码语言:javascript复制# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1
检查vnc server是否启动
代码语言:javascript复制netstat -lnpt|grep Xvnc
出现下图结果说明启动成功
代码语言:javascript复制[root@011ff517ebf7 /]# netstat -lnpt|grep Xvnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 4658/Xvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 4658/Xvnc
tcp6 0 0 :::5901 :::* LISTEN 4658/Xvnc
tcp6 0 0 :::6001 :::* LISTEN 4658/Xvnc
关闭防火墙
代码语言:javascript复制# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
vnc客户端发起连接
下载vnc client 连接vnc server
修改色彩质量
初次连接上去可以看到桌面的色彩很模糊 解决办法是在建立好的远程连接点右键,选择 Properties,再选择 Options 选项卡,在 General 下面的 Picture quality 选择 High,保存。然后就可以看到图象变清晰了。
保存镜像
代码语言:javascript复制# 1、查询container id,出现的第一个字符串就是container id,我这里是011ff517ebf7
docker ps -a | grep centos-desktop-vnc
# 2、提交作为本地镜像
docker commit 011ff517ebf7 centos:7-vnc
中文安装
查看当前字符集
代码语言:javascript复制$ echo $LANG
en_US.UTF-8
安装字符集
使用locale命令看看当前系统所使用的字符集
代码语言:javascript复制$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
查看系统是否安装中文字符集支持
代码语言:javascript复制# locale -a | grep CN
bo_CN
bo_CN.utf8
ug_CN
ug_CN.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
若没有执行以下命令进行安装
代码语言:javascript复制yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common
#定义字符集
localedef -c -f UTF-8 -i zh_CN zh_CN.UFT-8
#确认载入成功
locale -a
修改系统字符集
修改系统字符集的配置文件:
代码语言:javascript复制# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
# source /etc/locale.conf
验证字符集修改
代码语言:javascript复制# echo $LANG
zh_CN.UTF-8
# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2021/11/28 13:44