用MySQL / MariaDB数据库创build一个Docker容器
我打算将我的应用程序堆栈迁移到Docker。 让我来描述一下我目前使用的服务:
- HAProxy ,用于所有服务的连接(HTTP和原始TCP连接)上的SSL终止,并将stream量转发到下面的服务。
- Nginx ,提供静态文件,如更新和一些信息页面。
- 运行主应用程序的Node.js。
- MySQL(MariaDB) ,由所有应用程序使用和共享的数据库。
我的问题是关于数据库。
在这种情况下运行MariaDB的正确方法是什么?
- 安装和运行它在我的容器,以及其他服务?
- 在一个单独的容器中运行官方映像 ,并使用Docker
run
命令的--link
选项将我的容器链接到它?
第一个select是否有缺点?
TeamSpeakdocker集装箱使用第二个选项,这就是让我质疑自己关于在我的情况下运行数据库的正确方式,但我特别感觉更倾向于打包在我自己的图像中的所有服务。
Docker哲学:将你的应用程序分解成microservices
并为每个microservice
使用一个容器。
在你的情况下,我推荐一个MariaDB
容器,使用官方( Library
)图像给你更容易的更新pipe理,但随意使用你的自定义图像。
一个HAProxy
容器,一个nginx
容器和一个nodejs
容器。
这样,您就可以将应用程序分成microservices
,并且可以在孤立的环境中更轻松地升级,pipe理和排除故障。
如果您正考虑通过docker将应用程序交付给最终用户,那么一个简单的docker-compose
文件就可以轻松启动所需的容器。