2016-11-15 28 views
0

我打算将我的应用程序堆栈迁移到Docker。让我描述我目前使用的服务有:使用MySQL/MariaDB数据库创建Docker容器

  • HAProxy的,它用于SSL终端上的所有服务的连接(HTTP和原始TCP连接),并转发流量到下面的服务。
  • Nginx,它提供静态文件,如更新和一些信息页面。
  • Node.js,运行主要应用程序。
  • MySQL(MariaDB),由所有应用程序使用和共享的数据库。

我的问题是关于数据库。

在这种情况下运行MariaDB的正确方法是什么?

  1. 在我的容器中安装并运行它以及其他服务?
  2. 在单独的容器中运行official image,并使用Docker的run命令的--link选项将我的容器链接到它。

第一个选项是否有缺点?

TeamSpeak docker container使用第二个选项,这就是让我质疑自己关于在我的情况下运行数据库的正确方式,但我特别感觉更倾向于将我自己的映像中的所有服务打包。

+0

请看'docker-compose'哪个适合你的情况。 – Rao

+0

请解释为什么Docker对于任何堆栈都是有利的。 (我不是在反对Docker,而是希望得到满足您需求的答案。) –

回答

5

码头理念:将您的应用程序拆分为microservices,并为每个microservice使用一个容器。

就你来说,我推荐一个MariaDB容器,使用官方(Library)图片让你更容易更新管理,但随意使用你的自定义图片。

HAProxy容器,A nginx容器和nodejs容器。

通过这种方式,您可以将您的应用程序划分为microservices,您可以在隔离的环境中更轻松地升级,管理和排除故障。

如果您正在考虑通过docker将应用程序交付给最终用户,一个简单的docker-compose文件将帮助您轻松启动所需的容器。

相关问题