可能在一个mysql数据库容器上运行docker容器的两个实例?

有三个容器

容器A:Web服务器容器B:复制Container A容器的Web服务器Z:容器A的MySQL数据存储容器

我可以使用容器Z作为mysql数据存储同时运行容器A和B吗? 会损坏MySQL的数据存储?

下面的容器运行时间:

容器Z:docker run –name mysql_datastore -it busybox:mysql_datastore true

容器A:docker run -it -p 80:80 –volumes-from mysql_datastore –name webservera -h webservera centos:webseverwithmysql / bin / bash

容器B:docker run -it -p 81:81 –volumes-from mysql_datastore –name webserverb -h webserverb centos:webseverwithmysql / bin / bash

希望这些解释之一是正确的。

我可以在所有共享单个数据卷的不同容器中运行多个mysql守护进程吗?

不,每个守护进程都需要一个单独的数据目录来避免冲突。 您可以将多个数据目录放在共享卷中,但结果是多个完全分离的数据库。 – 来源

我可以运行连接到单个mysql数据库容器的多个容器吗?

是的,可以允许多个容器连接到单个数据库容器,但不能共享卷。 容器Z将运行mysql守护进程,其他容器可以通过tcp套接字连接到它。 mysql官方的repo自述文件有一些开始的步骤:

首先启动容器Z.

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql 

然后运行你想连接到数据库的其他容器,如下所示:

 docker run --name webservera --link some-mysql:mysql -d application-that-uses-mysql 

--link标志 。 容器链接为链接别名添加一个主机文件条目,因此您不必手动查找地址。 你的web服务器的数据库configuration看起来像这样

 jdbc:mysql://address=(protocol=tcp)(host=mysql)(port=3306)(user=root)(password=mysecretpassword) 

我希望这有帮助。