Docker中同一个程序的多个实例

我有一个Java程序模拟我自己做的协议。 它绑定到正在运行的计算机上的给定IP地址和端口号。 我期待在具有多个网卡的同一台机器上运行该程序的多个实例。 这是可能的使用docker(一位同事已经向我build议,但不知道太多)? 我的另一个计划是用桥接器在机器上运行多个虚拟机,但与使用Docker相比,我认为这是浪费资源(根据我所了解的情况,仍然很难理解这个想法)。

一旦执行,程序就像一个守护进程等待消息/数据包一样在后台运行,并可以通过终止进程来停止。

正如几位评论者所指出的那样,没有理由不能在程序中运行多个程序作为容器,就像你也可以在容器之外做的那样(因为你有多个可用于绑定的IP地址你的服务端口)。

这个问题可能更多的是devise。 您希望如何分配目标为您的Java服务应用程序的stream量? 如果实际上每个物理IP地址都需要一个IP地址,那么可以使用--network=host来运行容器,并直接将您的应用程序绑定到一个特定的IP地址,可能会使用一些指令/标记将该实例指向特定的IP地址。 默认情况下,Docker将在您的系统上创build一个桥接networking,并且容器将以专用networkingIP开始,并将主机端口上的每个IP暴露给您的端口绑定configuration 。 很显然, iptables或某种更高级的前端代理可以用来根据需要进行从多个物理networking地址到容器networking的任何自定义路由。