我如何使用Docker提供应用程序的多个状态实例?

我一直在使用docker提供给定主机上的应用程序实例的编排。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 09cb549dc9f8 livecompose_gs "/entrypoint.sh" 32 seconds ago Up 2 seconds 8009/tcp, 0.0.0.0:8082->8080/tcp gs_1 dddf7fcd4014 livecompose_gn "/entrypoint.sh" 33 seconds ago Up 2 seconds 8009/tcp, 0.0.0.0:8081->8080/tcp gn_1 21f685f1fb13 livecompose_db "/usr/bin/supervis..." 33 seconds ago Up 3 seconds db_1 1178674e5560 livecompose_apache "/entrypoint.sh" 34 seconds ago Up 3 seconds 0.0.0.0:32799->80/tcp, 0.0.0.0:32798->443/tcp ws_1 63f687245249 livecompose_data "/usr/bin/supervis..." 34 seconds ago Up 4 seconds 0.0.0.0:32797->9102/tcp ds_1 5ee21e5dc0aa doublebyte/newrelic_sysmond "/bin/sh -c 'nrsys..." 35 seconds ago Up 4 seconds 

我知道使用服务发现和网关,我可以运行同一应用程序的多个副本,并执行诸如负载平衡等模式。 我想在这种情况下,应用程序将在引导时注册发现服务,我会查询服务网关:

 http://somehost/applicationID 

其中applicationID是我要运行的应用程序的ID,它会询问服务发现的位置,并指向特定的副本,它对应于给定的容器和给定的端口:

 http://somecontainer:someport 

但是,如果我想在系统上运行一个应用程序的有状态实例,我真的不明白如何使用这些发现/网关框架来实现。 让我们说,我想为用户1(我们可以称之为实例x)提供一个应用程序A的实例,并向用户2提供同一个应用程序的另一个实例(我们可以称之为实例y)。 用户1和用户2将改变他们的应用程序的configuration并添加数据(如果它是一个数据库的话),所以虽然这些实例是指同一个应用程序,但它们的状态是不同的; :而且他们不是复制品。

有框架/configuration,它允许我注册实例,而不是应用程序,并要求系统的东西?

 http://somehost/applicationID/instanceID 

甚至更好:

 http://somehost/instanceID