Docker是什么
Docker是什么
相信我们很多人都使用多VM(Virtual Machine),也就是虚拟机,简单的来说Docker就是类是于VM的容器,但Docker要轻量得多,VM(Virtual Machine)是重量级的;VM是硬件级别的虚拟化技术,而Docker只是内核级别的虚拟化技术,Docker是开源的容器引擎,就拿Docker官方的两张图来说:

VM(Virtual Machine):第一张是VM的图;VM其实就是一个虚拟的硬件环境,在使用VM的时候我们都需要在VM中装一个完整的OS然后再在OS中部署我们的Application,图片中的Hypervisor就是VM的核心,它用于虚拟硬件环境,然后可以在Hypervisor之上安装多个OS;
Docker:第二张就是Docker在于整个结构中的图,Docker没有模拟整个硬件环境,它只需要在宿主主机中装Docker Engine(Docker引擎),然后就可以在Image(镜像)创建多个Container(容器),各个容器运行环境都是独立的可以简单的说每个Container都是一个独立的OS,每个Container与宿主使用同一个内核,对进程与资源进行了隔离;Docker也不是新技术,Docker只是在LXC(Linux Container)的基础上进行封装发展起来的;
光从这两张图就可以看出VM与Docker的区别了,相比Docker,VM是多么的轻量;单个程序很多时候不能够完全的使用单台计算机的硬件资源,这时候VM就出现它能够在单台计算机上装多个OS运行多个程序,但VM上的OS占用资源过多;而Docker与主机共享内核,可以运行更多的Container,Docker比VM更能榨干计算机的硬件资源;
VM(Virtual Machine)
- 需要安装OS
- 基于硬件的虚拟化
- 启动每个OS都需要几十秒
- 主机上的OS数量有限制
- OS占用的资源过多
Docker
- 不需要安装OS
- 基于内核的虚拟化技术
- 每个Container的启动是毫秒级别
- 主机上可以有几百上千个Container
Docker的作用
关于开发
在之前程序的部署是个麻烦的环节,开发者写好程序之后要进行测试就需要在测试机装程序远行的环境,到测试好之后又要在正式机上装完全一样的程序运行环境,当测试机、或正式机上的运行环境与开发的环境有一点不一样程序就会出现问题,而使用了Docker之后就不会出现在测试机配置运行环境、在正式机远行环境这些问题,只需要开发者配置好一个Image,然后再测试机、正式机上下载Image,然后在Container中运行程序即可,省去了来回配置运行环境的问题;
关于程序分发
现在我们每当要使用一个程序或框架的时候都是把软件下下来然后各种折腾程序的远行环境程序才能跑起来,当使用了Docker后就可以把程序放在Image中,使用者只需要把Image下下来即可,不需要去折腾各种环境各种依赖,Docker决解了程序依赖的问题,它把依赖都打包进了Image中;
Docker为CI(Continuous integration)、MicroService的使用提供了很好的使用环境,企业内部的私有云也很多使用了Docker;
Docker发展
短短两三年时间,Docker得到了各大云服务厂商的支持现在亚马逊、微软、谷歌等等的云服务都有支持了Docker;Docker不再只支持Linunx,微软对Docker可以说是很看好的,最新的Windows Server将原生的支持Docker;CoreOS 也发布了与Docker类是的容器引擎;
由于Docker才出现没几年所以Docker周边的工具还是健全,管理过多的容器还是很麻烦的,但Docker现在的生态环境很活跃相信这些只是时间问题;
文章首发地址:Solinx
http://www.solinx.co/archives/372
Docker是什么的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- Oracle修改默认字符编码
--查看Oracle数据库字符集: Sql代码 select userenv('language') from dual; 查询结果: SIMPLIFIED CHINESE_CHINA.AL32UTF ...
- 点我吧工作总结(技术篇) zookeeper
我思故我在,提问启迪思考! 1.什么是zookeeper? 2.zookeeper与dubbo.springMVC之间的协同工作? http://doc.okbase.net/congcong68/a ...
- 为什么正常安装并成功运行了Genymotion虚拟但是运行的时候启动的却是自带的模拟器?
最近因为这个问题困惑了好久,最终找到了解决思路: 点击genymotion——setting——ADB——Use sustom Android tools,找到电脑中SDK文件位置就可了! 希望自己坚 ...
- python学习笔记12 ----线程、进程
进程和线程的概念 进程和线程是操作系统中两个很重要的概念,对于一般的程序,可能有若干个进程,每一个进程有若干个同时执行的线程.进程是资源管理的最小单位,线程是程序执行的最小单位(线程可共享同一进程里的 ...
- GJM : 数据结构 - 轻松看懂机器学习十大常用算法 [转载]
转载请联系原文作者 需要获得授权,非法转载 原文作者将享受侵权诉讼 文/不会停的蜗牛(简书作者)原文链接:http://www.jianshu.com/p/55a67c12d3e9 通过本篇文章可以 ...
- [deviceone开发]-拼图小游戏
一.简介 九宫格小游戏,可从本地图库载入一张图片,填充到9个ImageView,另涉及Timer计时.图库控件. 每个格子都是相同的控件,动态添加到首页中的,在初始化后,响应touch事件,之后通过多 ...
- LigerUi框架+jquery+ajax无刷新留言板系统的实现
前些天发布了LigerUi框架的增.删.改代码,一堆代码真的也没一张图片.有的网友推荐上图,所有今天把涉及到这个框架的开源的留言板共享给大家.在修改的过程中可能有些不足的地方希望大家拍砖. 因为留言板 ...
- Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)
目录 简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据 ...
- User Profile Service Application 配置同步连接时,报 MOSS MA not found
最近在试着配置"我的网站",不知什么原因在配置同步连接时报:MOSS MA not found 搜索发现,需要启动Forefront Identity Manager Servic ...
- sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)
接着上面的图片调查,sharepoint自带的问卷调查是没有开始和结束时间的.这个在项目过程不太实用.问卷一般有开始和结束时间的.因此需要自己 动手开发一个自定义字段类型字段.如下图: 开发添加栏目会 ...