MongoDB使用docker部署和直接部署的对比?优缺点?

请教吧内大神们,MongoDB使用docker部署和直接部署的优缺点? 我们项目
现在是在考虑使用MongoDB分片集群,三台服务器,每台服务器按照官网推荐部署5个MongoDB节点:1个mongos 1个config server 1个主分片 1个副本集 1个仲裁者,想问一下这种部署方案是直接部署好还是使用docer好?最好有个两者之间详细的优劣对比?

2个回答

docker的优点:方便,免配置,开箱即用,在一个服务器上可以高密度部署,便于迁移。
直接部署:灵活,更充分利用主机性能,效率高,特别是IO效率,更好地和本地其他程序交互。

Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库网络管理相对简单,主要是基于namespace隔离container随着用户进程的停止而销毁,container中的log等用户数据不便收集Docker对disk的管理比较有限
Docker并非适合所有应用场景,Docker只能虚拟基于Linux的服务。Windows Azure 服务能够运行Docker实例,但到目前为止Windows服务还不能被虚拟化。
可能最大的障碍在于管理实例之间的交互。由于所有应用组件被拆分到不同的容器中,所有的服务器需要以一致的方式彼此通信。这意味着任何人如果选择复杂的基础设施,那么必须掌握应用编程接口管理以及集群工具,比如Swarm、Mesos或者Kubernets以确保机器按照预期运转并支持故障切换。
Docker在本质上是一个附加系统。使用文件系统的不同层构建一个应用是有可能的。每个组件被添加到之前已经创建的组件之上,可以比作为一个文件系统更明智。分层架构带来另一方面的效率提升,当你重建存在变化的Docker镜像时,不需要重建整个Docker镜像,只需要重建变化的部分。
可能更为重要的是,Docker旨在用于弹性计算。每个Docker实例的运营生命周期有限,实例数量根据需求增减。在一个管理适度的系统中,这些实例生而平等,不再需要时便各自消亡了。
针对Docker环境存在的不足,意味着在开始部署Docker前需要考虑如下几个问题。首先,Docker实例是无状态的。这意味着它们不应该承载任何交易数据,所有数据应该保存在数据库服务器中。
其次,开发Docker实例并不像创建一台虚拟机、添加应用然后克隆那样简单。为成功创建并使用Docker基础设施,管理员需要对系统管理的各个方面有一个全面的理解,包括Linux管理、编排及配置工具比如Puppet、Chef以及Salt。这些工具生来就基于命令行以及脚本。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐