Docker:将mysql数据库拆分成不同的数据卷容器?

时间:2015-08-02 06:53:43

标签: mysql database nginx docker

我有以下Docker容器:

  • web(nginx)
  • db(mysql)

web容器已链接到db容器。所有标准的东西。

对于数据持久性,我想采用data volume container方法。

我希望能够使用这两个容器作为主要应用程序容器运行多个网站(从技术上讲,web容器运行面向用户的主应用程序,而db位于后面)。

我们分别使用数据库siteAsiteBsiteC来说ABC在mysql中。

我希望能够将这些网站的数据库数据划分为3个不同的数据量容器(dataAdataBdataC)以实现可移植性,并将它们带入在一个部署中(一个主机运行webdbdataAdataBdataC在需要时全部相关联。)

有没有办法将单独的mysql数据库划分为自己的数据卷容器以实现可移植性? AFAIK,mysql将所有数据库数据存储在/var/lib/mysql中在mysql存储的数据库方面不透明的时尚。

例如,如果将存储在mysql中的不同数据库映射到已知目录(在本例中为/var/lib/mysql/A/var/lib/mysql/B/var/lib/mysql/C,那就太好了。这样,我只需要保留这些目录并将它们挂载到db容器中。我不认为情况就是这样。

1 个答案:

答案 0 :(得分:2)

为什么不运行db容器的多个实例?根据需要映射目录。

docker run -d -v /var/lib/mysql/A:/var/lib/mysql --name dbA my_docker/my_awesome_mysql
docker run -d -v /var/lib/mysql/B:/var/lib/mysql --name dbB my_docker/my_awesome_mysql
docker run -d -v /var/lib/mysql/C:/var/lib/mysql --name dbC my_docker/my_awesome_mysql

如果您只需要将dbA移动到其他主机,这将有所帮助。