如何为在Docker容器中运行的OS启用远程桌面共享(如VNC服务器)

时间:2019-10-03 05:28:41

标签: docker vnc-server

我能够从docker hub提取centos映像-

docker pull centos

然后我执行了run命令以交互方式启动容器-

docker run -i -t centos

然后,我可以通过--p等终端与在容器内部运行的centos进行交互

[root@640fc383c7b4/]# other commands here..

现在,我想知道是否可以与容器内部的centos进行远程交互,就像使用VNC查看器一样,就像我在虚拟机内部运行其他OS一样。

我尝试使用命令vncserver安装yum -y install tiger-vncserver,并在运行命令vncserver之后给出-

[root@640fc383c7b4 home]# vncserver

New '640fc383c7b4:2 ()' desktop is 640fc383c7b4:2

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/640fc383c7b4:2.log

现在,我尝试使用容器的IP地址连接到指定的端口2,但是它不起作用。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

要使用任何端口连接到运行中的容器,您需要在运行命令期间对其进行映射,然后通过主机IP或localhost对其进行访问。

例如:

如果您运行http服务器,该服务器在容器内的端口8080上列出,以便能够在机器中的8080上访问它,则需要像这样8080:8080进行映射,右侧是容器端口,左侧是主机端口。

该命令将如下所示:

docker run -dit --name my-http-server-instance -p 8080:8080 my-http-server:latest

每个其他端口都一样。

以您的情况

  • 该端口可能不是2,因此您需要查找VNC服务器端口(也许是5900)。
  • 您不应使用这样的容器,例如,该容器不是VM,并且它有能力做到这一点,这并不意味着要使用这种方式,因此请考虑从使用ssh连接该容器的命令行中使用它。