多个docker容器间共享单个mariadb(Docker数据库服务)
有什么用
多个docker容器间共享单个mariadb(Docker数据库服务)
多个Docker Compose组之间共享单个Docker数据库服务,避免一个应用就要开启一个mysql或mariadb的容器,避免浪费硬件系统的内存和硬盘资源
多个docker容器间共享网络
怎么用
修改新增的docker-compose.yml来让app的数据库部分连接到共享的mariadb docker容器中,比如:
1 | version: '3' |
相关内容
实现方法
建立shared_network
需要新建一个共享network的docker容器,docker-compose.yml
1 | version: '3' |
实践证实这个步骤不是必须的,仅需要把network和配置数据库参数部分按下面的设置即可:
SuiteCRM使用共享数据库
以SuiteCRM为例,让它使用共享的yourls_mysql数据库服务
1 | version: '3.5' |
启动这个docker-compose错误:
service “suitecrm” depends on undefined service yourls_mysql: invalid compose project
把depends_on 修改为 links 依然报同样错误。
修改了
1 | network shared_network declared as external, but could not be found |
最终:
修改直接使用“template_default”这个network的话,可以直接使用到共享的数据库
下一步
打算用起来phpMyAdmin或者本机的DataGrip,来管理和备份数据库等操作…
注意事项
合并/共享数据库时,务必备份原先数据库中的内容;这样即便操作不当,还能追溯回原先版本。