Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

1、不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。

2、你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。

3、在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。

总之docker就是集装箱原理。

Docker的优势

1)标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;

2)节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;

3)方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;

4)节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;

5)方便持续集成,通过与代码进行关联使持续集成非常方便;

6)可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。

最新文章

  1. 简述 C、C++程序编译的内存分配情况【转】
  2. 基于Maven构建开发第一个Storm项目
  3. Hadoop家族 路线图(转)
  4. 内存管理单元(MMU)和协处理器CP15介绍(转)
  5. 在csdn里markdown感受
  6. ImageOptim 图片压缩工具
  7. Linux下定时备份数据库
  8. How to check for and disable Java in OS X
  9. CentOS 6.4 LNMP 环境编译安装
  10. Catalog和Schema
  11. 基于visual Studio2013解决C语言竞赛题之1076放鞭炮
  12. mssql查询过去一段时间数据库中执行过的语句及执行效率
  13. dubbo2.5.6从下载到编译成功并且部署成功过程
  14. 【JSOI2008】星球大战 (并查集)
  15. OrCAD原理图中怎么导出FPGA的引脚分配
  16. 初学Java Web(8)——过滤器和监听器
  17. input type date 解决移动端显示placeholder
  18. mplayer用法收集【转】
  19. TCPWrap的使用配置
  20. react编译报错:Import in body of module; reorder to top import/first

热门文章

  1. 【九度OJ】题目1015:还是A+B 解题报告
  2. 【LeetCode】693. Binary Number with Alternating Bits 解题报告(Python)
  3. python学习第一天:window安装python开发环境完整篇
  4. zbar解析二维码demo
  5. jquery控制元素的隐藏和显示的几种方法
  6. 关于ActiveMQ+Zookeeper做集群时,解决启动报错:java.io.IOException: com/google/common/util/concurrent/internal/InternalFutureFailureAccess
  7. MyBatis 一级缓存实现详解及使用注意事项
  8. Git 如何放弃所有本地修改
  9. ubuntu18.04 安装谷歌chrome浏览器
  10. Go语言系列之并发编程