我有一个docker实例,它将端口A暴露给主机。主机为docker实例保留端口B,连接到主机上端口B的客户端实际上将在端口A上与docker通信而不知道它。
目前,只有一个客户端可以访问此docker实例。我希望能够管理多个客户端,每个客户端都有自己的实例。因此,服务器(Python会很好)将从端口上的客户端接收连接(例如,端口5555用于所有客户端)并将每个客户端无缝地重定向到其自己的docker实例。
这必须已经存在,因为它是服务器的基本内容,但我似乎缺乏在线查找它的词汇。这样一个系统的名称是什么,一个已经存在?
答案 0 :(得分:1)
我认为您真正需要的是一个将侦听端口A的代理服务器。当客户端连接到端口A时,她/他将被重定向到端口B而不会注意到它。一个例子是一个docker apache服务器,它将监听端口80并将所有请求转发给另一个服务器,例如侦听端口8080的tomcat。例如。
docker run --name tomcat run -d tomcat
docker run -v path/to/your/httpd.conf:/usr/local/apache2/conf/httpd.conf --name proxy -d --link tomcat:tomcatserver -p 80:80 httpd
你的httpd.conf应该是这样的:
# Put this after the other LoadModule directives
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/local/apache2/modules/mod_proxy_http.so
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://tomcatserver:8080
ProxyPassReverse / http://tomcatserver:8080
<Location />
Require all granted
</Location>
Yyj y y 5 yep ptpy