为每个客户端分配一个 docker 个实例

Assign one docker instance to each client

我有一个 docker 实例,它向主机公开端口 A。主机为 docker 实例保留端口 B,连接到主机上端口 B 的客户端实际上会在不知情的情况下与端口 A 上的 docker 通信。

目前,只有一个客户端可以访问此 docker 实例。我希望能够管理多个客户端,每个客户端都有自己的实例。所以服务器(Python 会很好)会在一个端口上接收来自客户端的连接(例如 all 客户端的端口 5555)并将每个客户端重定向到它自己的 docker 实例无缝。

这必须已经存在,因为它是服务器的基本内容,但我似乎缺乏在网上找到它的词汇。这种系统的名称是什么,是否已经存在?

我认为您真正需要的是一个将侦听端口 A 的代理服务器。当客户端连接到端口 A 时 she/he 将被重定向到端口 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