我有以下Docker容器:
web
(nginx)db
(mysql) web
容器已链接到db
容器。所有标准的东西。
对于数据持久性,我想采用data volume container方法。
我希望能够使用这两个容器作为主要应用程序容器运行多个网站(从技术上讲,web
容器运行面向用户的主应用程序,而db
位于后面)。
我们分别使用数据库siteA
,siteB
和siteC
来说A
,B
和C
在mysql中。
我希望能够将这些网站的数据库数据划分为3个不同的数据量容器(dataA
,dataB
,dataC
)以实现可移植性,并将它们带入在一个部署中(一个主机运行web
,db
,dataA
,dataB
,dataC
在需要时全部相关联。)
有没有办法将单独的mysql数据库划分为自己的数据卷容器以实现可移植性? AFAIK,mysql将所有数据库数据存储在/var/lib/mysql
中在mysql存储的数据库方面不透明的时尚。
例如,如果将存储在mysql中的不同数据库映射到已知目录(在本例中为/var/lib/mysql/A
,/var/lib/mysql/B
和/var/lib/mysql/C
,那就太好了。这样,我只需要保留这些目录并将它们挂载到db
容器中。我不认为情况就是这样。
答案 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移动到其他主机,这将有所帮助。