Docker:一个MySQL数据库的多个实例

时间:2017-08-15 11:05:15

标签: mysql docker

我们可以创建多个容器来托管Docker中的单个共享数据库吗?如果我们可以创建它,我们是否会遇到选择事件上多个实例的任何问题(例如)?

谢谢。

1 个答案:

答案 0 :(得分:1)

请允许我稍微解释一下你的问题。如果我误解了任何事情,请纠正我。

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

答:简答:,因为docker container只是您计算机上的process

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

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

每个数据库实例都有一个相应的listener进程,该进程绑定到主机的特定port

现在,每个端口只能绑定到进程。这是一对一的关系。

基本上,如果您安装了10个SQL实例,它们将分别绑定到一个唯一的端口。因此,您在connection string中定义的端口号决定了您要与之交谈的数据库实例。

值得注意的是,docker containers是自包含的。您可以将它们视为传统的virtual machine,除了它们的重量更轻。也就是说,容器将拥有自己的网络基础架构,类似于您的物理主机。因此,为了让您的物理主机能够看到容器化数据库,您必须port-forward绑定端口。

如果上面的段落对您没有任何意义,那么我建议您使用docker的ports-p选项进行升技。

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