如何将docker X windows隧道到远程主机?

如何将docker X windows隧道到远程主机?,docker,ssh-tunnel,Docker,Ssh Tunnel,当我在工作时,使用Ubuntu 14.04(IP:a.b.c.d),我想在docker容器中执行一个程序(p.e.firefox)并获得图形输出,我在docker容器中启动一个shell,在这个shell中执行: DISPLAY=a.b.c.d:0 firefox 另一方面,当我在家时,我需要在工作pc中运行程序,并在家庭pc中使用专用IP地址(NADE)获取输出,我连接: $ ssh -X work-pc 然后我在shell中运行程序,并在本地获得输出 有没有办法通过“ssh-X”隧道将do

当我在工作时,使用Ubuntu 14.04(IP:a.b.c.d),我想在docker容器中执行一个程序(p.e.firefox)并获得图形输出,我在docker容器中启动一个shell,在这个shell中执行:

DISPLAY=a.b.c.d:0 firefox

另一方面,当我在家时,我需要在工作pc中运行程序,并在家庭pc中使用专用IP地址(NADE)获取输出,我连接:

$ ssh -X work-pc
然后我在shell中运行程序,并在本地获得输出

有没有办法通过“ssh-X”隧道将docker容器的输出重定向到home

我知道我可以在容器中安装ssh服务器,将工作pc中的端口重定向到容器的端口22,将家庭pc本地端口重定向到该工作pc端口(使用ssh-L port:host:port work pc),并使用“ssh-X”从家庭pc连接到容器以在家中获得输出,但我想知道是否还有其他方法


谢谢。

我按照网站上的说明做了一些工作

我的docker compose有:

version: "3.7"
services:
  rhel:
    privileged: true
    build:
      context: /home/mpawlowsky/docker
      dockerfile: Dockerfile
    volumes:
      - /tmp/.x11-unix:/tmp/.x11-unix
      - /home/mpawlowsky/.Xauthority:/root/.Xauthority:rw
    cap_add:
      - NET_ADMIN
      - NET_RAW
    environment:
      - DISPLAY
    network_mode: host
我启动容器并在其中运行:

$ docker-compose up -d
$ docker exec -it rhel /bin/bash
$ firefox

据我所知,这是ssh服务器或VNC。