Docker
Docker的简介
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Liunx机器上,也可以实现虚拟化。
容器完全使用沙箱机制,相互之间不会有任何的接口(类似iPhone的APP),更重要的是容器开销性能极低。
Docker的出现?
一个产品从开发到上线,从操作系统,到运行环境,再到应用配置,开发人员和运维人员的协作之间需要关心的东西很多,特别是各种版本的迭代之后,不同版本的兼容问题,对于运维也是一大考验。
Docker之所以发展得如此的迅速,也是因为它对此给出了一个标准化的解决方案。
环境配置如此的麻烦,换一台机器,就要重新配置一次,费时费力。很多人想到,能不能从根本上解决这个问题,==软件是否可以带环境安装?==也就是说,安装的时候,把原始环境一模一样的复制过来。开发者可以利用Docker消除协作编码时“在我的机器上可以正常工作”的问题。
在平时开发中,很多人在Windows环境中开发,最终上线时部署到Liunx环境的服务器上,这就涉及不同操作系统之间的移植问题。就算不跨操作系统,在换另一台同一操作系统的服务器,也要重新安装一遍环境,要移植应用也是非常麻烦。
Docker镜像的设计,使用Docker可以打破过去,程序即应用的观念。透过镜像(images)将作业系统核心除外,运行应用程序所需要的系统环境,由下而上打包,达到应用程序跨平台间的无缝接轨动作。
Docker的理念
Docker的主要目标是“Build,Ship and Run,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的应用及其运行环境能够做到“一次封装,到处运行”。
Liunx容器技术的出现就解决了这样的一个问题,而Docker就是在它的基础上发展过来的。将应用运行在Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到另的机器上就可以一键部署好,大大简化了操作。
简单一句话就是:Docker解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布容器虚拟化技术。