当我在工作时,使用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连接到容器以获取主页输出,但我想知道是否还有其他方法。
感谢。
答案 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