WSL2 docker GUI 界面
在 WSL2 docker
中运行GUI界面。
具体流程和远程显示Ubuntu界面类似,链接, 更简单一点, 少了 ssh 的部分。
- 安装好wsl2 和 docker
wsl2 运行GUI程序,windows 会默认弹出窗口。 可以安装
gedit
测试一下
-
windows 下载并运行
Xlaunch
.- 运行
-
docker 环境中设置
DISPLAY
变量。- 以
ros
为例, 下载并运行,进入 docker 镜像。 echo 'export DISPLAY={your windows WSL2 IP}:0.0' >> ~/.bashrc
- 运行
rviz
, 即可正常显示 GUI
- 以
说明
-
Windows IP:
-
可以测试在docker中能不能ping通主机。
- 安装 ping。
apt install iputils-ping
- 关闭 Windows 防火墙
- 也可以用windows 主机名代替 IP。
可以使用DISPLAY=DESKTOP-8SPQ0E8:0.0
来表示, 前提是ping DESKTOP-8SPQ0E8
可以ping通。
- 安装 ping。
-
新建 docker container
docker run -it --name ros-noetic ros:noetic-robot-focal
参考:
- wsl ros docker, https://blog.csdn.net/enwuone/article/details/121412077
- https://jackkawell.wordpress.com/2019/09/11/setting-up-ros-in-windows-through-docker/
Update: WSL2 Docker VNC 连接图形界面
-
下载并运行镜像, 以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
的连接
-
-
安装
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
-
-
配置VNC
-
运行
vncserver
, 创建链接密码
-
关闭刚刚创建的 VNCserver:
vncserver -kill :1
-
修改xstartup文件 (
vim ~/.vnc/xstartup
), 添加下列内容#!/bin/sh xrdb $HOME/.Xresources startxfce4 &
-
为了保证VNC服务正常启动,需要配置xstartup为可执行文件。
chmod +x ~/.vnc/xstartup
-
重新启动
vncserver
-
-
主机启动 VNC view 链接, 默认端口 5901
参考链接 1
参考链接2