2017-08-15 34 views
2

,我们可以创建多个容器承载在码头工人一个共享的数据库,如果我们能创造它,我们将面临的任何问题与选择事件(例如)多个实例的多个实例?泊坞窗:一个MySQL数据库

谢谢。

+1

很抱歉,但你需要使用正确的话的东西,并把它们放在一起的方式,让你的问题清楚。 Docker有容器。一个容器可以运行一个mysql数据库。你可以有一个运行1000个mysql容器的群。这与运行1000个mysql服务器没有区别。如果你这样做了,会为你的应用程序创造什么问题? Docker不会改变多个mysql服务器产生的问题。 – gview

回答

1

请允许我套用你的问题有点。如果我误解了任何内容,请纠正我。

问:我可以使用Docker技术运行多个MySQL数据库实例吗?

答:简短的回答:因为docker container只是你的机器上的process

问:如果我有在同一台主机上运行MySQL数据库的多实例,它是如何知道我在我的query上执行哪个实例?

答:那么这一切都取决于你的数据库客户端设置的connection string

每个数据库实例都会有一个对应的listener进程绑定到主机的特定port。现在

,每个端口只能结合的方法。这是一对一的关系。

从本质上讲,如果你已经安装了10个SQL实例,他们将结合各自的独特的端口。因此,您在connection string中定义的端口号决定了您要与之通话的数据库实例。

东西值得一提的是,码头工人containers是自包含的。你可以将它们看作传统的virtual machine,只是它们重量更轻。也就是说,一个容器将拥有自己的网络基础设施,类似于您的物理主机。因此,如果您的物理主机能够看到集装箱式数据库,则必须使用绑定端口port-forward

如果上面的段落对你没有任何意义,那么我会建议你展示docker的ports-p选项。

参见:https://docs.docker.com/engine/userguide/networking/default_network/binding/

+0

感谢@Samuel Toh的回应。假设有mysql的承载同一个数据库体系结构(表和关系)和代理的3个容器,然后我的应用程序将与代理沟通,这个代理请求重定向到根据每个资源的可用性,这3个实例之一容器,假设我有一个“从特定表中选择请求”代理将如何交互, –