使用VNC可视化Docker容器

这篇具有很好参考价值的文章主要介绍了使用VNC可视化Docker容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 前言

VNC是虚拟网络控制台(Virtual Network Console)的缩写,是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美,但是由于VNC协议自身的限制,无法提供文件上传下载的能力。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。
VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。在任何安装了客户端的应用程序(vncviewer)的计算机(Windows, linux均可)上都能方便地和安装了服务器端应用程序(vncserver)的计算机相互连接。vncserver可以在服务器端生成一个虚拟的桌面环境,连接成功后就可以在本地屏幕上显示。

所以我们的整体思路,就是在docker容器中安装vnc-server和一个桌面软件,然后在本地机器安装vnc-viewer;在docker容器中启动vnc-server服务,就可以在本地Windows中用vnc-viewer指定ip和端口来连接docker容器,从而可视化容器的UI操作界面。

环境:

远程服务器:

  • Docker版本:20.10.18
  • 使用的镜像:pytorch/pytorch 1.11.0-cuda11.3-cudnn8-runtime

本地机器环境

  • Windows11

1. 容器端配置

1.1 启动Docker容器

sudo docker run -itd --gpus all --name CONTAINER-NAME --restart unless-stopped -e USER=root -v /local/directorty:/workspace -v /dev/shm:/dev/shm -p xxxx:5901 pytorch/pytorch:1.11.0-cuda11.3-cudnn8-runtime

命令中的名字、目录等替换成自己的,-e USER=root-v /dev/shm:/dev/shm-p xxxx:5901不要改,-e USER=root是后续容器中启动vncserver所需的环境变量,5901端口是vncserver启动时默认使用的端口,-v /dev/shm:/dev/shm保证容器的内存不会不够。

启动成功后进入容器:

sudo docker exec --it CONTAINER-NAME bash

1.2 安装x11

x11是一个用于远程图形界面的程序,若只安装x11,也可以通过ssh -x连接后显示图形程序。

apt-get install xorg openbox

1.3 安装桌面环境

本示例中,桌面环境使用Xfce,它是一个精简的轻量化桌面,与Gnome和KDE相比更小巧,并且界面美观、对用户友好,适合云服务器远程连接场景下使用。其他的桌面环境还有ubuntu-desktop等。

更新软件列表

apt update

安装Xfce桌面环境,顺便装个vim,方便后续文件编辑

sudo apt install xfce4 xfce4-goodies vim

1.4 安装tightvncserver

apt install tightvncserver

执行完成后,输入vncserver命令进行配置:

  • 密码:输入一个6-8位的密码,后续用VNC viewer连接会用
  • 是否创建仅查看密码:使用仅查看密码登录的用户将无法使用鼠标或键盘控制云服务器。此处输入“n”

2. 配置VNC Server

2.1. 首先停止刚刚新建的虚拟化桌面

上一步输入vncserver时创建了一个新的虚拟化桌面
输入以下命令先删除它

vncserver -kill :1

2.2 修改xstartup文件

修改xstartup文件

vim ~/.vnc/xstartup

i进入编辑模式,添加以下内容之后保存并退出

#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &

这里我的配置文件里只少最后一行,所以只添加最后一行即可。
其中,

  • 第一个命令xrdb $HOME/.Xresources告诉VNC的GUI框架读取服务器用户的.Xresources文件。用户可以在.Xresources中更改图形桌面的某项设置,如终端颜色、光标主题和字体渲染。
  • 第二个命令startxfce4 &告诉系统启动Xfce。

docker vnc,linux,docker,linux,运维

为了保证VNC服务正常启动,需要配置xstartup为可执行文件。

chmod +x ~/.vnc/xstartup

2.3 启动新的虚拟化桌面

vncserver -geometry 1280x960

-geometry参数用来设置分辨率,vncserver --help可以查看更多参数

docker vnc,linux,docker,linux,运维
回显信息中出现类似这样的一条信息:Log file is /root/.vnc/xxx:1.log。其中,“1”表示当前用户分配的是VNC的第一个虚拟桌面。


3. 本地安装VNC Viewer

VNC Viewer在Windows, Linux中都有相应的安装包。 我的本地机器使用的Win11系统,直接下载安装包安装即可。
VNC Viewer下载地址: https://www.realvnc.com/en/connect/download/viewer
安装完成后,启动VNC Viewer,在上方输入框中输入ip:端口号并确定,弹出的警告窗口选择Continue,然后密码即为1.4中创建的密码。
docker vnc,linux,docker,linux,运维
连接成功后的界面:

docker vnc,linux,docker,linux,运维


4. 遇到的问题

4.1 终端无法启动

在桌面点击终端图标启动终端报错:

Failed to execute default terminal. Emulator. input/output error

在docker容器的命令行中输入下面命令

sudo apt-get install xfce4-terminal
sudo update-alternatives --config x-terminal-emulator

按照输出的提示选择xfce4-terminal.
参考链接:Getting input/output error running anything on remote desktop

4.2 浏览器无法启动

Failed to execute default web browser. input/output error

解决办法:安装一个Chrome浏览器并设置为默认
安装wget

apt install wget

下载Chrome安装包

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

安装Chrome

apt install ./google-chrome-stable_current_amd64.deb

设置为默认浏览器,打开终端输入

xfce4-settings-manager

选择"Preferred Applications"
找到 Web Browser,然后选择Other...,选择Google-Chrome或者输入/usr/bin/google-chrome即可

参考链接:Failed to execute default web browser. input/output error文章来源地址https://www.toymoban.com/news/detail-805269.html

4.3 浏览器中显示的中文为乱码

  1. 安装locales并配置
    apt install locales
    dpkg-reconfigure locales
    
  2. 语言编码选择 en_US.UTF8,zh_CN GB2312,zh_CN GBK GBK,zh_CN UTF-8 UTF-8
  3. 为当前用户配置默认语言为中文zh_CN UTF-8 UTF-8,在~/.bashrc最后添加一行
    export LANG=zh_CN.UTF-8
    vim ~/.bashrc
    
    添加即可
    export LANG=zh_CN.UTF-8
    
  4. 安装中文字体
    apt install fonts-wqy-zenhei
    
    重新启动即可
    参考链接: xfce4 设置中文

到了这里,关于使用VNC可视化Docker容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker进阶:Docker轻量级可视化工具Portainer与容器监控3剑客CAdvisor+InfluxDB+Granfana

    💖The Begin💖点点关注,收藏不迷路💖 在开始之前,确保已经安装了Docker。 Portainer是一个开源的Docker轻量级可视化工具,它提供了一个直观的Web界面,让你轻松管理和监控Docker容器、镜像和网络等。本文将为你介绍如何安装和使用Portainer,并提供详细的步骤指导,帮助你快

    2024年02月08日
    浏览(60)
  • Ubuntu20.04+Docker+ROS Noetic 可视化容器管理工具Portainer

    官网教学安装网址:Install Docker Engine on Ubuntu | Docker Documentation ros镜像网址 https://hub.docker.com/r/osrf/ros https://hub.docker.com/r/osrf/ros/tags 3.1 宿主机开启xhost,使得docker里面可视化界面(vscode rviz)  注意:每次重启容器,主机都得执行一遍,否则容器内可视化报错。 3.2 创建宿主机数

    2024年02月12日
    浏览(79)
  • 如何在CentOS搭建docker compose ui可视化工具并无公网IP远程管理容器

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年03月22日
    浏览(55)
  • 本地部署Docker容器可视化图形管理工具DockerUI并实现无公网IP远程访问——“cpolar内网穿透”

    DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基于容器安装方式,部署方便高效,浏览和维护docker单节点或集群节点worker和manager。DockerUI具有易于使用的界面。它不需要记住 docker 指令。只需下

    2024年04月25日
    浏览(53)
  • 【打工日常】使用docker部署可视化工具docker-ui

           docker-ui是一个易用且轻量化的Docker管理工具,透过Web界面的操作,方便快捷操作docker容器化工作。        docker-ui拥有易操作化化界面,不须记忆docker指令,仅需下载镜像即可立刻加入完成部署。基于docker的特性,于docker-ui中可以直接更新镜像的版本,使用相同的设

    2024年02月19日
    浏览(41)
  • docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接

    题目:docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接 为什么我想要用ubuntu的桌面环境?因为我有一些软件开发需要显示GUI,就这么简单。 参考:给docker中的ubuntu系统安装桌面程序:我们可以创建好容器。 🎈打开powershell或者linux终端,输入以下命令创建容器 🔻warnin

    2024年02月16日
    浏览(42)
  • 1panel可视化Docker面板安装与使用

    官网地址1Panel - 现代化、开源的 Linux 服务器运维管理面板 文章目录 目录 文章目录 前言 一、环境准备 二、使用步骤 1.安装命令 2.一些命令  3.使用  总结 虚拟机centos 已经安装好docker和 Docker Compose 或者都没安装 1panel会帮你自动安装 curl -sSL https://resource.fit2cloud.com/1panel/pack

    2024年02月03日
    浏览(45)
  • Docker可视化管理工具Portainer多机器安装使用

    Docker安装并指定主目录:https://blog.csdn.net/wdy_2099/article/details/77367107 安装命令如下: 启动成功后,输入http://你的ip:8999/访问portainer 刚进入需要设置admin的密码,设置好密码后进入主页面: 然后添加环境: 然后,选择Socket,输入一个名称(名称最好和机器/业务关联),点击Conn

    2024年02月16日
    浏览(70)
  • 使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

    矩池云虚拟机支持 Docker 使用,但是由于虚拟机目前不支持启动时传递环境变量来设置VNC、Jupyterlab 连接密码,所以我们没有创建相关基础镜像(设置固定密码容易泄漏),下面给大家介绍手动安装使用 VNC、Jupyterlab、CUDA等步骤,以便支持使用 OpenGL 等功能的使用,开启更完善

    2024年03月25日
    浏览(45)
  • docker使用与服务器上的可视化(ROS rviz等)

    安装docker:官网教程,按照官网命令一步步来即可。 添加当前用户到 docker 用户组: 【docker】添加用户到docker组,这样后面运行docker的时候前面不需要加 sudo 命令,否则运行 docker 的时候一直需要在前面加 sudo ,即 sudo docker xxx 首先区分镜像(images)和容器(containers):他们

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包