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
      WSL2 docker GUI 界面_第1张图片

说明

  1. Windows IP:WSL2 docker GUI 界面_第2张图片

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

    • 安装 ping。apt install iputils-ping
    • 关闭 Windows 防火墙
    • 也可以用windows 主机名代替 IP。
      WSL2 docker GUI 界面_第3张图片
      可以使用 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的连接WSL2 docker GUI 界面_第4张图片
      host的连接
      WSL2 docker GUI 界面_第5张图片

  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 , 创建链接密码
      WSL2 docker GUI 界面_第6张图片

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

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

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

      chmod +x ~/.vnc/xstartup
      
    • 重新启动 vncserver
      WSL2 docker GUI 界面_第7张图片

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

参考链接 1

参考链接2

你可能感兴趣的:(docker,容器,运维)