Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker-我的MySQL数据库应该位于容器内部还是外部?_Mysql_Database_Docker - Fatal编程技术网

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

Docker-我的MySQL数据库应该位于容器内部还是外部?,mysql,database,docker,Mysql,Database,Docker,我正在docker上设置我的第一台生产服务器,但我不确定我的MSQL数据库应该放在哪里。数据库应该位于容器外部还是内部?我以前读过一些文章/帖子,说它应该在外面,所以如果你必须启动一个新的容器或图像,不会有任何改变,但我不确定这是否正确。将其置于容器内部或外部是否存在速度/性能差异?关于性能:Docker容器默认使用虚拟网络接口,请参阅。这只是一个轻微的速度开销。不过,根据您的预期负载,您可能希望将DB容器绑定到主机网络,或者根本不将DB dockerize 关于数据持久性:如果您正在使用数据,

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

关于性能:Docker容器默认使用虚拟网络接口,请参阅。这只是一个轻微的速度开销。不过,根据您的预期负载,您可能希望将DB容器绑定到主机网络,或者根本不将DB dockerize

关于数据持久性:如果您正在使用数据,则数据将位于容器外部,也可以由任何新容器装入。不用担心

关于是否为DBs使用容器(我的意见):目前流行将无状态和可互换的应用程序容器化,这意味着您可以简单地抛弃过时的服务,用新的容器替换它们。虽然这对于频繁更新的微服务来说很有意义,但对于相对较长的服务(如数据库),您真的需要它吗?是的,Docker仍然有助于包含依赖项并更快地发布内容,但也有其他选择,如Ansible配置的VM。最后,这取决于什么最适合您的用例

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

    • 建立和维护完善的备份和恢复策略和程序
    • 实施和维护数据库安全(创建和维护用户和角色,分配权限)
    • 执行数据库调优和性能监视
    • 执行应用程序优化和性能监视
    • 建立和维护文档和标准
    • 规划增长和变化(容量规划)
  • 如果我需要这些服务中的任何一项,我会使用容器外部的数据库,并由专家托管

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