如何连接一个docker容器到主机上的ssh forward Xserver?

  • 我有Xming在Windows 10上运行
  • 我ssh与X转发到一个Linux的盒子
  • 我可以从这里连接到X服务器
  • 我运行一个docker集装箱,并从容器中尝试连接到X服务器,但不能。

    $ display display:无法打开X server`localhost:13.0'@ error / display.c / DisplayImageCommand / 426。

我像这样运行docker:

sudo docker run -it \ --user=$(id -u) \ --env="DISPLAY" \ --workdir="/home/$USER" \ --volume="/home/$USER:/home/$USER" \ --volume="/etc/group:/etc/group:ro" \ --volume="/etc/passwd:/etc/passwd:ro" \ --volume="/etc/shadow:/etc/shadow:ro" \ --volume="/etc/sudoers.d:/etc/sudoers.d:ro" \ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ --volume="/u:/u:rw" \ my_container 

DISPLAY=localhost:13.0

如果我将-p 6013:6013添加到docker run命令,则失败:

docker:来自守护进程的错误响应:驱动程序无法编程端点上的外部连接musing_carson(22065ce5147ec298f8d3a43b3d2f375c6ab597f4d49f76a30d76437d04e8f4e3):启动userland代理时出错:listen tcp 0.0.0.0:6013:bind:地址已经在使用中。

如果我将--net=host添加到运行命令中,则与x服务器的连接工作,但是这大大降低了容器和主机系统之间的分离和安全性。