docker - 多个客户端的多个 docker 实例
问题描述
我正在对一些在 Linux 环境上运行且目前有 10 多个客户端的遗留应用程序(Web + 服务 + C++ 应用程序)进行容器化。
我可以从 Docker 设置和运行应用程序(C++ 应用程序)。由于应用程序将读取一些属性文件,这些文件对于不同的客户端会有所不同。所以我尝试安装驱动器以在 Docker 之外共享数据(运行时某些文件可能已更改)。
但我最关心的是如何为运行时(内存状态)不同的不同客户端运行单个容器?(应用程序将永远运行,直到有人杀死/停止它)。
我需要为n 个客户端运行n 个容器吗?
Docker swarm/Kubernetes 对这种场景有一些属性吗?
ech 客户端会获得自己的专用容器吗?
您能否建议针对此类情况进行一些进一步的阅读/研究?
对于数据库——因为每个客户端都有不同的数据——应该使用不同的数据库?
解决方案
您可以通过为容器提供唯一名称和环境变量来隔离容器。
例子:
docker run --name client1 --env-file ./client1.env your-image-name-here
您可以使用这种方法分别拥有对每个上下文都是唯一的隔离环境和配置。
N 个客户需要 N 个容器。但是您可以对 N 个容器使用相同的图像。因此,每个客户一个容器,每个容器将由它自己的唯一名称和环境变量标识。
推荐阅读
- java-8 - Hibernate Tools 5.3 - Mysql 8 - 域生成
- c# - DllImport 错误:在 Mono 中缺少 winspool.drv?
- typescript - SystemJS:YouTube API 外部 JS 库被误认为是本地 TypeScript 模块
- python - 函数内部变量的赋值改变了外部的赋值 - Python
- bash - $RANDOM 行为异常
- sql-server-2008 - 将 sa 登录密码设置为“sa”会自动重置,Windows Defender 会被激活并显示“发现一些恶意软件”
- matlab - 无法从文本文件中导入数字
- amazon-web-services - AWS 无服务器 API 请求
- javascript - 如何让这段代码一次移动一个班级
- c# - 运行时 C# 创建列表
其中 T 是未知的,如 List