如何将Docker X窗口隧道连接到远程主机?

时间:2014-12-23 19:21:30

标签: docker ssh-tunnel

当我在工作时,使用Ubuntu 14.04(IP:abcd)并且我想在docker容器中执行一个程序(pe firefox)并获取图形输出,我在docker容器和这个shell中启动一个shell我执行:

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

另一方面,当我在家时,我需要在工作电脑中运行一个程序并在家用电脑上获得具有私有IP地址(NATed)的输出,我连接到:

$ ssh -X work-pc

然后我在该shell中运行程序并在本地获取输出。

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

我按照https://dzone.com/articles/docker-x11-client-via-ssh上的说明进行了一些工作。

我的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