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

我们是否可以在Docker中创build多个托pipe单个共享数据库的容器,如果我们可以创build它,我们是否会在select事件(例如)上面临多个实例的问题?

谢谢。

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

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

答:简短回答: 是的,因为docker container只是您的机器上的一个process

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

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

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

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

本质上,如果你安装了10个SQL实例,它们将被绑定到一个唯一的端口。 因此,您在connection string定义的端口号决定了您要与之通话的数据库实例。

值得注意的是,dockercontainers是独立的。 你可以把它们看作传统的virtual machine只是它们重量更轻。 也就是说,一个容器将有自己的networking基础设施,类似于你的物理主机。 因此,为了让您的物理主机能够看到集装箱式数据库,您必须port-forward绑定端口。

如果上面的段落对你没有任何意义,那么我build议你展示Docker的ports或者-b选项来进行升级。

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