ubuntu18服务器,nvidia-docker,容器内GUI界面远程输出到win10

本文详细介绍如何在Win10客户端通过Xmanager和Xshell,实现与Ubuntu服务器及nvidia-docker容器之间的SSH图形界面转发。包括服务器端ssh_config与sshd_config的设置,X11服务的安装与权限开放,以及容器内X11套接字共享等关键步骤。

环境介绍

  • 客户端:win10(xmanager,xshell)
  • 服务器:Ubuntu18(nvidia-docker,ssh)
  • docker容器:Ubuntu18(ssh)

已经实现客户端远程ssh连接服务器和各个容器,三方ssh配置均正常

服务器端配置:

sudo vim /etc/ssh/sshd_config

设置X11Forwarding yes
然后:

sudo vim /etc/ssh/ssh_config 

将ForwardAgent、ForwardX11、ForwardX11Trusted设为yes
最后重启:

service ssh restart

允许所有用户访问X11服务

sudo apt-get install xserver-xorg x11-xserver-utils
  
xhost + 

客户端配置

win10客户端需要和服务器在同一网络下(其实我不是很清楚,我实现的是服务器在校园网,win10客户端在内网)
xshell连接服务器,xmanager不用做什么配置,可以自动监听

在服务器上启动新的docker容器:

sudo nvidia-docker run -it \
--privileged --name ubuntu-test\ 
 --restart=always \
 -v /home/phy/public_data:/data:ro \
 -v /home/phy/output:/output \
 -v /tmp/.X11-unix:/tmp/.X11-unix \
 -v /etc/localtime:/etc/localtime:ro \
 -e DISPLAY=unix$DISPLAY \
 -e GDK_SCALE \
 -e GDK_DPI_SCALE \
 --net=host  \
 410-pytorch:base bash\
  1. 其中的『-v /tmp/.X11-unix:/tmp/.X11-unix』参数就是将服务器上X11的unix套接字共享到了容器里面。因为每个unix套接字实际上就是系统/tmp/.X11-unix目录下面依据套接字编号命名的一个特殊文件。
  2. –net=host参数省了很多需要配置的步骤,它直接把服务器的端口共享给了该容器,不需要作服务器和容器之间的端口映射。如果容器内的ssh端口设置为22,那么客户端直接连接服务器的22端口即可。这样顺便解决了容器内不能git clone 的问题

在容器中测试:运行图形化界面

apt install xarclock
xarclock

不出意外的话,这时候win10客户端就会出现图形界面啦!

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值