当前位置: 首页 > article >正文

WSL2 docker GUI 界面

在 WSL2 docker 中运行GUI界面。
具体流程和远程显示Ubuntu界面类似,链接, 更简单一点, 少了 ssh 的部分。

  1. 安装好wsl2 和 docker

wsl2 运行GUI程序,windows 会默认弹出窗口。 可以安装 gedit 测试一下

  1. windows 下载并运行 Xlaunch.

    • 运行
  2. docker 环境中设置 DISPLAY 变量。

    • ros 为例, 下载并运行,进入 docker 镜像。
    • echo 'export DISPLAY={your windows WSL2 IP}:0.0' >> ~/.bashrc
    • 运行 rviz, 即可正常显示 GUI
      在这里插入图片描述

说明

  1. Windows IP:在这里插入图片描述

  2. 可以测试在docker中能不能ping通主机。

    • 安装 ping。apt install iputils-ping
    • 关闭 Windows 防火墙
    • 也可以用windows 主机名代替 IP。
      在这里插入图片描述
      可以使用 DISPLAY=DESKTOP-8SPQ0E8:0.0 来表示, 前提是ping DESKTOP-8SPQ0E8可以ping通。
  3. 新建 docker container
    docker run -it --name ros-noetic ros:noetic-robot-focal

参考:

  1. wsl ros docker, https://blog.csdn.net/enwuone/article/details/121412077
  2. https://jackkawell.wordpress.com/2019/09/11/setting-up-ros-in-windows-through-docker/

Update: WSL2 Docker VNC 连接图形界面

  1. 下载并运行镜像, 以Ubuntu20.04为例.

    # 下载
    docker pull ubuntu:20.04
    # 创建 container
    docker run --gpus all --name ubuntu20_vnc -p 5090:5090 -p 6001:6001 --network hosts ubuntu:20.04
    
    • 只使用 程序GUI, 只需要 container 可以 ping 通 主机IP即可, 默认的网络链接就可以(默认的是bridge), docker 网络链接 介绍;

    • 使用VNC服务, 需要 container 和 主机 双向 ping 通. 采用host, 保证主机和container在同一个局域网下.

      默认 bridge的连接在这里插入图片描述
      host的连接
      在这里插入图片描述

  2. 安装 vncserver

    • 安装桌面环境

      apt-get update
      apt-get install xorg openbox vim
      
    • 安装 xfce4 桌面环境

      apt install xfce4 xfce4-goodies xfce4-terminal 
      update-alternatives --config x-terminal-emulator  # 配置终端
      
    • 安装 tightvncserver

      apt install tightvncserver
      
  3. 配置VNC

    • 运行 vncserver , 创建链接密码
      在这里插入图片描述

    • 关闭刚刚创建的 VNCserver:
      vncserver -kill :1

    • 修改xstartup文件 (vim ~/.vnc/xstartup), 添加下列内容

      #!/bin/sh
      xrdb $HOME/.Xresources
      startxfce4 &
      
    • 为了保证VNC服务正常启动,需要配置xstartup为可执行文件。

      chmod +x ~/.vnc/xstartup
      
    • 重新启动 vncserver
      在这里插入图片描述

  4. 主机启动 VNC view 链接, 默认端口 5901

参考链接 1

参考链接2


http://www.kler.cn/a/159323.html

相关文章:

  • JavaScript:浏览器对象模型BOM
  • STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别
  • windows tomcat 报错后如何让窗口不闪退
  • LeetCode Hot 100 题解[java版本,冲大厂]
  • 常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
  • 三:网络为什么要分层:OSI模型与TCP/IP模型
  • 【每日OJ —— 94. 二叉树的中序遍历】
  • Go语言实现大模型分词器tokenizer
  • MyBatis 常见面试题
  • IntelliJ IDEA 智能(AI)编码工具插件
  • python笔记:dtaidistance
  • 企业微信SOP在私域运营中如何提升效率?
  • 【JavaWeb】项目后端部分统一解决方案
  • Linux:可视化管理工具Webmin的安装
  • 【1day】蓝凌OA 系统datajson.js接口远程命令执行漏洞学习
  • 不简单的字符串转换问题
  • 值得收藏的常用DELL OpenManage Server Administrator (OMSA) 的命令列表
  • 10步搭建出完美的成品短视频app源码
  • TCP协议实现一对一聊天
  • 洗袜子的洗衣机哪款好?内衣洗衣机便宜好用的牌子
  • Diary12-Word表格
  • 界面控件Kendo UI for jQuery中文教程 - 如何集成全新的DockManager组件
  • 在微信小程序中如何改变默认打开的页面
  • Magna EDI 项目案例
  • 【Java Web学习笔记】4 - DOM文档对象模型
  • ExoPlayer架构详解与源码分析(10)——H264Reader