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/