Docker - 我的MySQL数据库应该位于容器内部还是外部?

时间:2016-09-19 06:58:29

标签: mysql database docker

我在docker上设置我的第一个生产服务器,但我不确定我的MSQL数据库应该在哪里。数据库应该在容器外还是在容器内?我之前读过一些文章/帖子,它应该住在外面,所以如果你不得不启动一个新的容器或图像,没有任何改变,但我不确定这是否正确。将容器放在容器内部或外部是否有任何速度/性能差异?

2 个答案:

答案 0 :(得分:1)

关于性能:默认情况下,Docker容器使用虚拟网络接口,请参阅Docker Advanced networking documentation。这只是一个轻微的速度开销。但是,根据您的预期负载,您可能希望将数据库容器绑定到主机网络,或者根本不要将数据库停靠。

关于数据持久性:如果您使用volumes or volume containers,您的数据将存在于容器之外,并且也可以通过任何新容器进行安装。不用担心。

关于是否使用容器进行数据库管理(我的观点):目前流行的是将无状态和可互换的应用程序容器化,这意味着您可以简单地丢弃过时的服务并用新的容器替换它们。虽然这对于经常更新的微服务来说真的很有意义......你真的需要这个用于数据库等相对长期存在的服务吗?是的,Docker仍然有助于更快地包含依赖项和发布内容,但还有其他替代方案,例如Ansible-provisioned VM。最后,它取决于您的用例最简单的内容。

答案 1 :(得分:1)

  1. 以下是我们的数据库管理员的一些职责:

    • 建立并维护良好的备份和恢复政策和程序
    • 实施和维护数据库安全性(创建和维护用户和角色,分配权限)
    • 执行数据库调整和性能监控
    • 执行应用程序调整和性能监控
    • 设置和维护文档和标准
    • 计划增长和变化(容量规划)
  2. 如果我需要这些服务,我会使用容器外的数据库并由专家托管。

    1. 如果数据需要被其他应用程序访问,我在容器外部的集中式数据库服务器上使用数据库,并由专家托管。