docker容器安装图形桌面

2023-05-16

文章目录

    • 视频教程
    • 版本信息
    • 创建一个CONTAINER
    • ubuntu官方国内源
    • docker镜像unminimize
    • 中文环境
      • 设置中文环境
    • 安装
      • 安装TigerVNC Server
      • 安装 xfce4精简版本
    • 配置
      • 设置vnc密码
      • ~/.vnc/xstartup
    • 启动vnc服务
  • 主机防火墙放行15901端口
    • 连接vnc服务
    • 语言支持打不开

在这里插入图片描述
最近突发奇想,想在docker中安装一个图形化远程桌面。可以用作远程调试,轻量级办公。其实主要为了玩,想探索一下docker到底能不能玩图形化程序。在docker中的图形化界面 ,到底能不能做简单的轻办公?

特点:

  • docker中可以使用
  • 体积小巧
  • 核心功能都要有,不能影响使用
  • 中文界面,支持中文输入法

视频教程

https://www.bilibili.com/video/BV1mL41177Av

版本信息

操作系统:Ubuntu 20.04.3 LTS 编写日期 : 2021-12-02 作者:ITKEY

没有特别说明的地方,都是以root权限执行。

创建一个CONTAINER

示例:

docker run --name vnc -it -p 15901:5901 ubuntu bash
  • 参数--name 设置CONTAINER名称,如果为空则随机生成
  • 参数-p 设置主机与容器的端口映射主机端口15901对应容器5901
  • 这里 ubuntu对应的是镜像名称
  • bash是你要执行的命令

ubuntu官方国内源

设置方法见:https://blog.csdn.net/lxyoucan/article/details/121691910

docker镜像unminimize

非docker可忽略!!!

如果你在docker中ubuntu中配置vnc。配置完成以后,发现一个奇怪的问题。发现图形界面中,中文不全面 。有一些地方依然显示的英文的。虽然不影响,但是强迫证受不了。经过我各种研究和尝试,终于找到了原因。因为docker中的ubuntu是精简版本的,有一些软件包被精简了导致。解决办法,就是恢复正常模式。
执行以下命令:

unminimize

等待执行完成了,重启vnc服务,这时发现,部分汉化不完全的问题已经成功解决了。
这样做的缺点也很明显,使整个镜像的体积增大了。这就看你的取舍了。建议在配置vnc前执行unminimize,这样会更快一些。配置完vnc在执行也是可以,就是要等久一些。

中文环境

如果不需要中文环境,可以忽略这一步。设置中文环境会让镜像体积增大一些。
server的环境,默认是英文的。导致我们的vnc界面打开后也是英文的。如何设置成中文呢?

设置中文环境

查看当前语言环境

echo $LANG

查看当前系统是否有中文语言包

locale -a

如果没有中文则,安装中文语言包。

apt install language-pack-zh-hans

修改系统环境变量为中文

然后,修改/etc/environment(在文件的末尾追加):

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
vim /etc/profile

增加以下内容:

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

vim ~/.bashrc

增加以下内容:

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

最后,执行命令:

sudo locale-gen

立马生效执行以下:

source ~/.bashrc

安装

安装TigerVNC Server

apt install tigervnc-standalone-server -y

安装 xfce4精简版本

#精简安装
sudo apt-get install -y --no-install-recommends xubuntu-desktop 
#不安装这个会报错Failed to execute child process “dbus-lauch”(xxxxx)
apt install dbus-x11 -y
#安装中文字体 ,否则会出现乱码
apt install fonts-wqy-microhei -y
#安装中文语言名和fcitx中文输入法
apt install -y \
gnome-user-docs-zh-hans \
language-pack-gnome-zh-hans \
fcitx \
fcitx-pinyin \
fcitx-table-wubi

配置

设置vnc密码

我们这里以用户itkey为例(也可以换成其他用户),以下命令用itkey用户执行。
登录你想开启vnc远程桌面的用户。如下:

#新建用户
adduser itkey
#切换到用于vnc的用户
su itkey
#设置vnc连接密码
vncpasswd

执行结果如下:

$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)?

~/.vnc/xstartup

以下命令用itkey用户执行。

su itkey
vim ~/.vnc/xstartup

内容如下:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export LANG=zh_CN.UTF-8
fcitx -r
startxfce4

设置权限:

chmod u+x ~/.vnc/xstartup

启动vnc服务

vncserver :1 -localhost no -geometry=1920x1080
  • :1是端口,最终tcp端口是此数字+5900 ,也就是1+5900=5901
  • -localhost no 默认为yes,设置成no则可以非localhost也可以连接vnc
  • -geometry 设置分辨率

主机防火墙放行15901端口

firewall-cmd --add-port=15901/tcp
firewall-cmd --add-port=15901/tcp --permanent

连接vnc服务

格式:

ip地址:tcp端口号

示例:172.16.184.19:5901
这里的端口是tcp端口,假如你设置的是:1,把这个数加5900就是最终结果。
也就是1+5900=5901
在这里插入图片描述
连接后,输入前面设置的vnc密码就可以进远程桌面了。

连接后,如果出现 黑屏,鼠标就是一个小方点。那么请稍等一会儿,有可能是桌面还在加载中。如果 等待超过30秒,还是黑屏,就有可能是你的配置不正常,请检查一下~/.vnc/xstartup配置是不是正确。
或者重启一下服务试试:

vncserver -kill :1
vncserver :1 -localhost no -geometry=1920x1080

语言支持打不开

语言支持打开会闪退。
找日志发现:

Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

解决办法:

sudo /etc/init.d/dbus start
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker容器安装图形桌面 的相关文章

随机推荐

  • 20_[nvim0.5+从0单排]_lsp状态栏(lualine)标签页(bufferline)美化

    视频与目录 项目值教程目录https blog csdn net lxyoucan article details 120641546B站视频暂无 20 nvim0 5 43 从0单排 lsp状态栏标签页美化lualine bufferli
  • macOS平铺窗口yabai配置分享

    简介 yabai 是一个窗口管理实用程序 xff0c 旨在作为 macOS 内置窗口管理器的扩展工作 yabai 允许您使用直观的命令行界面自由控制窗口 空间和显示 xff0c 并可选择使用设置用户定义的键盘快捷键 skhd和其他第三方软件
  • Netty入门案例——Netty实现websocket

    文章目录 一 服务端二 网页 一 服务端 span class token keyword import span span class token namespace io span class token punctuation spa
  • React Navigation中使用typescript简洁演示代码

    最近在尝试转到typescript xff0c 之前代码中含有的大量 navigaiton any近期打算把这样的代码优化一下 参考以下文档 xff1a https reactnavigation org docs typescript 尽
  • Linux新磁盘挂载到/home目录

    经常会遇到服务用着用着发现空间不够啦 xff01 怎么办呢 xff1f 备份数据 61 使用更大的磁盘重新安装系统 61 转移数据 这样太麻烦了 xff0c 如果是生产环境 xff0c 还要停机 增加新的磁盘 这里我选择方法 2 空间不足时
  • ReactNative AsyncLocalStorageUtil is defined multiple times

    ios运行正常 xff0c 在android下运行报错如下 xff1a AS 编译报错 Type com reactnativecommunity asyncstorage AsyncLocalStorageUtil is defined
  • React Native项目gradle手动编译

    最近在折腾 xff0c 远程开发React Native 项目 xff0c 我想实现在ssh命令行中 在服务器上自动编译RN 项目 xff08 android xff09 xff0c 这样就可以使用高速的服务器来编译项目 正解 cd and
  • Docker使用笔记

    软件安装 https docs docker com engine install ubuntu 下载镜像 span class token function docker span pull ubuntu 创建一个CONTAINER 示例
  • ubuntu编译安装最新的tmux

    通过apt get安装的tmux版本比较旧 xff0c 我喜欢使用最新的版本 那就自己编译安装一下吧 很简单 xff0c 耗时1分钟左右 环境 操作系统 xff1a Ubuntu 20 04 3 LTS 安装的tmux版本 xff1a tm
  • Ubuntu Linux 更改主机名(hostname)

    操作 编辑 etc hostname文件 span class token function vim span etc hostname 文件内容修改成自己想要的名称 修改完后 xff0c 重启机器就生效了 span class token
  • docker文件目录迁移

    docker默认存放路径是 var lib docker xff0c 按理来说没有什么问题 但是在我安装操作系统时 xff0c 分区空间分的太少了 xff08 50G xff09 但是 home目录就非常大了 所以我想把docker的默认路
  • ubuntu开启ssh服务

    环境 我的测试环境是 xff1a docker中的Ubuntu 20 04 3 LTS 安装openssh server span class token function sudo span span class token functi
  • neovim无法中文显示的问题

    场景 中文的语言环境 xff0c 其他支持中文的程序 正常能显示中文 xff0c 比如 date xff0c vim都可以支持中文 就neovim显示的是英文 我下载的neovim是全功能的版本 xff0c 支持中文的 所以排除软件的原因
  • Netty使用Google Protobuf进行编解码

    文章目录 一 概述1 编解码基础2 Netty编解码器3 Protobuf概述 二 Protobuf基本使用1 引入jar包2 下载Protobuf3 编写Student proto4 生成StudentPOJO类5 服务器端6 客户端7
  • ranger没有那个文件或目录: ‘screen‘: ‘screen‘

    背景 首先ranger是正常安装 xff0c 正常环境下也是可以正常使用的 当我在tmux中使用ssh远程 xff0c 然后使用ssh远程的机器中的ranger xff0c 就发现ranger打开报错了 嵌套层级 xff1a tmux ss
  • ubuntu搭建nvim开发环境准备工作

    以下代码 xff0c 仅供方便复制使用的 想了解细节 xff0c 可以参考 xff1a windows10安装子系统Ubuntu 20 04 https blog csdn net lxyoucan article details 1198
  • Failed to execute child process “dbus-launch“

    场景 在ubuntu中搭建vnc桌面环境 xff0c 安装 Minimal Xfce Desktop span class token comment 精简安装 span span class token function sudo spa
  • ubuntu图形界面乱码解决办法

    现象 ubuntu的vnc远程桌面中出现了一些乱码 原因分析 从上图中可以看出英文显示正常 xff0c 那么可以判断应该是中文乱码导致的 应该是系统中没有安装中文字体导致 解决办法 方法1 xff1a 使用英文的界面 xff0c 但是我还是
  • Kylin V10 SP1(ubuntu)编译安装python3新版本

    系统自带的python太旧了 xff0c 所以想编译安装最新版本的python 环境 span class token function cat span etc release span class token assign left v
  • docker容器安装图形桌面

    文章目录 视频教程版本信息创建一个CONTAINERubuntu官方国内源docker镜像unminimize中文环境设置中文环境 安装安装TigerVNC Server安装 xfce4精简版本 配置设置vnc密码 vnc xstartup