首页 > 解决方案 > 多个客户端的多个 docker 实例

问题描述

我正在对一些在 Linux 环境上运行且目前有 10 多个客户端的遗留应用程序(Web + 服务 + C++ 应用程序)进行容器化。

我可以从 Docker 设置和运行应用程序(C++ 应用程序)。由于应用程序将读取一些属性文件,这些文件对于不同的客户端会有所不同。所以我尝试安装驱动器以在 Docker 之外共享数据(运行时某些文件可能已更改)。

但我最关心的是如何为运行时(内存状态)不同的不同客户端运行单个容器?(应用程序将永远运行,直到有人杀死/停止它)。

我需要为n 个客户端运行n 个容器吗?

Docker swarm/Kubernetes 对这种场景有一些属性吗?

ech 客户端会获得自己的专用容器吗?

您能否建议针对此类情况进行一些进一步的阅读/研究?

对于数据库——因为每个客户端都有不同的数据——应该使用不同的数据库?

标签: dockerdeployment

解决方案


您可以通过为容器提供唯一名称和环境变量来隔离容器。

例子:

docker run --name client1 --env-file ./client1.env your-image-name-here

您可以使用这种方法分别拥有对每个上下文都是唯一的隔离环境和配置。

N 个客户需要 N 个容器。但是您可以对 N 个容器使用相同的图像。因此,每个客户一个容器,每个容器将由它自己的唯一名称和环境变量标识。


推荐阅读