Docker 第一篇--初识docker
已经多年不写博客, 看完《晓松奇谈》最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络。
既然决定写, 那么首先就从最近2年热门的开源项目Docker开始。Docker 这两年在国内很是火爆, 国内也有很多Docker的创业公司在做docker平台相关的事情。
比如已经拿到风投的Daocloud. 同时Docker也获得了很多大公司的青睐e.g. Google、Microsoft.
既然docker那么火热, 那么docker是什么呢? 我们一起看看Docker官网对docker的介绍
Docker provides a way to run applications securely isolated in a container, packaged with all its dependencies and libraries.
Because your application can always be run with the environment it expects right in the build image, testing and deployment is simpler than ever,
as your build will be fully portable and ready to run as designed in any environment.
And because containers are lightweight and run without the extra load of a hypervisor,
you can run many applications that all rely on different libraries and environments on a single kernel, each one never interfering with the other.
This allows you to get more out of your hardware by shifting the “unit of scale” for your application from a virtual or physical machine, to a container instance.
简而言之, Docker是一种轻量级的容器,通过Docker Image你可以统一客户环境和开发环境, 从而避免开发人员经常遇到的环境不一致导致的问题, 简化了测试以及部署。
同时容器使用的是宿主机的操作系统, 容器通过对“用户空间”的抽象化处理提供操作系统层级的虚拟化机制, 这也就意味着你可以单机运行大量的容器水平扩展容器。
Docker 容器和传统的VM有什么区别呢?

虚拟机比容器多了个一个Hypervisor层, Hypervisor 是虚拟机的核心所在。 他为虚拟机提供了虚拟的运行平台,管理了虚拟机操作系统的运行。
但是Docker容器没有这一层, Docker容器提供的是OS级别的进程隔离,这就意味着容器没有Hypervisor带来的性能损耗。
容器和宿主机共享操作系统通过cgroup来实现资源的隔离。
Docker 容器相对于VM有什么优缺点呢?
- Docker是开源免费的,vmvare是收费的而且死贵。
- Docker容器的创建是秒级的, 虚拟机通常是分钟级的。
- Docker容器需要的资源更少, 一台宿主机可以创建上千个application容器, 你创建上千个VM试试?
- 因为Docker的root用户依赖于宿主机, 所以docker的安全性更差。
- 因为Docker容器提供的是进程级别的隔离, 所以docker的隔离性更差。
Docker 第一篇--初识docker的更多相关文章
- Docker 第一篇 认识Docker 的作用好处
Docker 第一篇 认识Docker 的作用好处 (1)什么是Docker (2)Docker 优势劣势 Docker是去年开始关注并学习的,因为项目用到了AspnetCore 了解了之后总感觉会用 ...
- 深入理解javascript对象系列第一篇——初识对象
× 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...
- go [第一篇]初识
[第一篇] 简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...
- 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)
前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wc ...
- 第一篇:docker 简单入门(一)
本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 由于此类文章博客园鉴定为简单文章,所以已经移到csdn[https://blog.csd ...
- 第一篇 Windows docker 概述
本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm:本系统的后台是.Net,多系统交互的有java的:因系统发布效率问题,想采用docker Windows 的生产力环境 ...
- docker第一篇 容器技术入门
Container 容器是一种基础工具,泛指任何可以容纳其它物品的工具. Linux Namespaces (docker容器技术主要是通过6个隔离技术来实现) namespace 系统调用参数 ...
- docker第一章:docker核心概念及centos6下安装
Docker三大核心概念 镜像 容器 仓库 镜像 docker镜像类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统. 容器 1.容器是从镜像创建的应用运行实例,容器和 ...
- Docker | 第一章:Docker简介
前言 作为本系列的起始章节,本章节主要是对Docker的相关概念进行简单阐述下.自此也是查阅了相关资料,奈何也都是英文版居多,看的是有点头大的.现在悔不当初不好好学习英文了.o(︶︿︶)o 唉 Doc ...
随机推荐
- 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程
读完本文你会知道,如何在没有源码的情况下,直接修改一个 DLL 以去除 DLL 上的强命名限制,并在该程序集上直接添加你的“友元程序集(一种特殊的 Attribute,将它应用在程序集上,使得程序集内 ...
- ABP文档 - 后台作业和工作者
文档目录 本节内容: 简介 后台作业 关于作业持久化 创建一个后台作业 在队列里添加一个新作业 默认的后台作业管理器 后台作业存储 配置 禁用作业执行 Hangfire 集成 后台工作者 创建一个后台 ...
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- PHP中遍历XML之SimpleXML
简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...
- CSharpGL(33)使用uniform块来优化对uniform变量的读写
CSharpGL(33)使用uniform块来优化对uniform变量的读写 +BIT祝威+悄悄在此留下版了个权的信息说: Uniform块 如果shader程序变得比较复杂,那么其中用到的unifo ...
- “RazorEngine.Templating.TemplateParsingException”类型的异常在 RazorEngine.NET4.0.dll 中发生,但未在用户代码中进行处理 其他信息: Expected model identifier.
这个问题是由于在cshtml中 引用了model这个单词 它可能和Model在解析时有冲突. 解决方法:把model换成别的单词就可以了.
- 编译器开发系列--Ocelot语言1.抽象语法树
从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...
- 【转】Android开发中让你省时省力的方法、类、接口
转载 http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share& ...
- <程序员从入门到精通> -- How
定位 自己才是职业生涯的管理者,想清楚自己的发展路径: 远期的理想是什么?近期的规划是什么?今日的任务和功课又是什么? 今日之任务或功课哪些有助于近期之规划的实现,而近期之规划是否有利于远期之理想? ...