Docker是一款使用libcontainer的微容器管理工具。
作为Solomon Hykes利用Go语言开发而成的项目,Docker于2013年转入开源并被快速应用在诸多领域当中。这款工具的出色灵活性甚至使其成为游戏规则的改变者。Docker的作用并不是取代LXC、OpenVZ或者Xen。它也并不是一套像KVM、VirtualBox以及VMware那样的虚拟化解决方案。Docker拥有属于自己的定位视角、独特的运作方式而且具备完全不同的功能出发点:1.它的镜像与容器通过union mount文件系统(例如aufs以及devicemapper等)进行分层。这一方面节约了磁盘存储空间,另一方面也能够帮助我们在无需复制整套root的前提下快速构建容器环境;2.Docker回避了访客系统当中的初始化步骤。换句话来说,容器的root只会被用作指定应用程序的运行环境;3.Docker拥有对镜像版本的注册与控制能力,这也正是其步入标准化的重要标志。
我们采取以下规划方式:
每台物理从服务器都配备有一项发现服务,用于监听该Dockers socket。当某套容器系统启用或者停止时,该服务会将信息发送至主服务器。该主服务器随后能够采纳适当的措施,例如修改nginx服务器配置或者删除/移除一台上流服务器等。另一种选项则是对Docker的配置进行修改,从而保证该API能够在TCP模式下接受访问(即使其拥有网络可访问能力)。在这种特定情况下,小型客户端能够与所有从服务器相对接,并监听其中发生的全部事件。不过这种方式的基本原则仍然相同:每个事件都将允许管理员在nginx当中(假设使用nginx)对一台上游服器进行添加或者删除。
很明显,Docker是一项适用于开发及系统管理工作的技术成果。它能够不断提供精简效果并改善性能水平,同时具备良好的可行性,这一切使得用户能够以前所未有的方式轻松建立服务。无论您的基础设施到底处于何种规模,相信Docker都能助大家一臂之力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。