我的任务是使用Docker在单个Amazon EC2实例上设置多个独立的,特定于客户端的Web应用程序实例。基本应用程序对于每个实例基本相同,但已针对每个客户端进行了自定义。
目标如下:
1)每个容器都是固定的,并且沙盒和#34;这样任何一个容器都不会影响其他容器或主机。根据我的理解,Docker无论如何都会这样做,但我只是想确定一下。
2)每个容器都将完成"并拥有自己的用户,数据库,访问密钥等。
3)与一个容器关联的用户无法访问任何其他容器或主机的任何方面。
我搜索过类似的问题,有些人似乎触及了这个想法,但没有完全回答我的问题。
我知道这可能违背了Docker的理念,但除此之外,这是否可行,实现这一目标的最佳方法是什么?当每个主机只有一个客户端时,我们使用SSH隧道来访问相关端口,但是在同一主机上有多个客户端可以安全地使用这些端口吗?像Nginx或Apache这样的反向代理可以更好地满足这种设置吗?我在这里应该指出,我们目前只关注一个域来访问该主机。
我想问题归结为,在单个主机上运行多个客户端容器时,如何限制每个容器级别的远程访问?
非常感谢任何帮助。
答案 0 :(得分:1)
这是可行的但是解决方案太大而无法包含典型的Stack Overflow答案。这是像dotCloud,Heroku和其他人一样的PaaS提供商提供的价值的一部分。
您可以尝试推出自己的多租户解决方案,也许可以从Deis开始,但他们warn against it。
安全性很难,尤其是当您试图让客户轻松上手时。
您可以在dotCloud博客中找到这个系列有用:
值得注意的偏见:我曾经为dotCloud和现在的Docker工作。