【问题标题】:Create a Docker container with MySQL/MariaDB database使用 MySQL/MariaDB 数据库创建 Docker 容器
【发布时间】:2016-11-15 06:26:32
【问题描述】:

我计划将我的应用程序堆栈迁移到 Docker。让我描述一下我目前正在使用的服务:

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

我的问题是关于数据库的。

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

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

第一个选项有什么缺点吗?

TeamSpeak docker container 使用第二个选项,这让我质疑自己在我的案例中运行数据库的正确方法,但我更倾向于将所有服务打包到我自己的镜像中。

【问题讨论】:

  • 请查看docker-compose 适合您的情况。
  • 请解释为什么 Docker 对任何堆栈都有优势。 (我并不是反对 Docker,而是希望得出一个满足您需求的答案。)

标签: mysql docker mariadb


【解决方案1】:

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

在你的情况下,我推荐一个MariaDB 容器,使用官方(Library)镜像可以让你更轻松地管理更新,但请随意使用你的自定义镜像。

一个HAProxy 容器、一个nginx 容器和一个nodejs 容器。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多