mysql - Docker:将mysql数据库拆分到不同数据卷容器中?

标签 mysql database nginx docker

我有以下 Docker 容器:

  • 网络 (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 容器中。但我认为事实并非如此。

最佳答案

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

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 移动到另一台主机,这将会有所帮助。

关于mysql - Docker:将mysql数据库拆分到不同数据卷容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31769334/

相关文章:

php - 更新多行而不循环: PHP-MySQL

php - 外部约束失败

php - 当我无法使用 PDO 且使用 MySQL 时,我应该使用 pear MDB2 还是 pear DB_DataObject?

ruby-on-rails - 是否可以在 Heroku 上使用修改 nginx 配置文件并使用 X-Accel-Redirect?

php - nginx php 根目录下有 wordpress 和子目录中的另一个应用程序

PHP如果我想回显表而不是foreach循环我该怎么办

database - Neo4j CypherQuery 获取具有(空)属性的节点

sql - 查询小于特定时间的时间

ruby-on-rails - 大约 30 个 RoR 应用程序等待(卡住)1 个应用程序启动。这如何解决?

PHP mySQL 代码将额外的行发送到数据库?