Docker容器云

Docker的初衷就是将各种应用程序和他们所依赖的运行环境打包成标准的container/image, 进而能够方便地发布到不同的平台上运行。

立即咨询

Docker解决了什么问题?

程序在我这跑得好好的,在你的电脑就不行了,为什么?

Docker image中包含了运行环境+配置,对部署相当友好。Docker解决了运行环境和配置问题,方便发布,也就方便做持续集成。

快当然不错,但是能快100倍就太不可思议了。速度让很多事情成为可能,增加了更多新的可能性。 比如:

如果需要从Clojure开发环境完整的切换到Go语言吗?启动一个容器吧。 需要为集成和性能测试提供生产环境DB?启动一个容器吧! 瞬间启动大量容器,非常适合在业务高峰期进行横向扩展,比传统的启动EC2实例或者物理机可要快多了。

更轻量的虚拟化,节省了虚拟机的性能损耗

虚拟机做了良好的资源隔离,不同用户之间彼此不会相互影响。但是,虚拟机有缺点:创建速度慢,迁移起来麻烦,因为中间加了一层guest os,有了性能损耗。 相对虚拟机的重量级虚拟化方案,Linux内核级的一些隔离方案让人们看到了希望,cgroups、namespace、tc、quota、chroot、lxc。终于,Docker出现了, Docker利用这些成熟的技术,让虚拟化变得轻量了起来,创建一个container瞬间完成,秒级!cpu指令集不再被翻译执行,性能损耗非常少,虽说隔离性没有虚 拟机那么彻底,安全性上稍差一些,但也基本可以用。

Docker容器 + 用户应用 = 部署单位(构件)

类似于Java的编译一次,到处运行,Docker是构建一次,在各种平台上运行。 以前部署代码都是代码级别的,有了Docker,则可以进行容器级别的部署。这样带来的最大的好处就是开发者本地测试、CI服务器测试、测试人员测试,以及生 产环境运行的都可以是同一个Docker镜像。