已经多年不写博客, 看完《晓松奇谈》最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络。

既然决定写, 那么首先就从最近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有什么优缺点呢?

  1. Docker是开源免费的,vmvare是收费的而且死贵。
  2. Docker容器的创建是秒级的, 虚拟机通常是分钟级的。
  3. Docker容器需要的资源更少, 一台宿主机可以创建上千个application容器, 你创建上千个VM试试?
  4. 因为Docker的root用户依赖于宿主机, 所以docker的安全性更差。
  5. 因为Docker容器提供的是进程级别的隔离, 所以docker的隔离性更差。

Docker 第一篇--初识docker的更多相关文章

  1. Docker 第一篇 认识Docker 的作用好处

    Docker 第一篇 认识Docker 的作用好处 (1)什么是Docker (2)Docker 优势劣势 Docker是去年开始关注并学习的,因为项目用到了AspnetCore 了解了之后总感觉会用 ...

  2. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

  3. go [第一篇]初识

    [第一篇] 简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...

  4. 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)

    前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wc ...

  5. 第一篇:docker 简单入门(一)

    本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 由于此类文章博客园鉴定为简单文章,所以已经移到csdn[https://blog.csd ...

  6. 第一篇 Windows docker 概述

    本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm:本系统的后台是.Net,多系统交互的有java的:因系统发布效率问题,想采用docker Windows 的生产力环境 ...

  7. docker第一篇 容器技术入门

    Container 容器是一种基础工具,泛指任何可以容纳其它物品的工具. Linux Namespaces (docker容器技术主要是通过6个隔离技术来实现) namespace    系统调用参数 ...

  8. docker第一章:docker核心概念及centos6下安装

    Docker三大核心概念 镜像 容器 仓库 镜像 docker镜像类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统. 容器 1.容器是从镜像创建的应用运行实例,容器和 ...

  9. Docker | 第一章:Docker简介

    前言 作为本系列的起始章节,本章节主要是对Docker的相关概念进行简单阐述下.自此也是查阅了相关资料,奈何也都是英文版居多,看的是有点头大的.现在悔不当初不好好学习英文了.o(︶︿︶)o 唉 Doc ...

随机推荐

  1. [APUE]进程控制(上)

    一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...

  2. CYQ.Data、ASP.NET Aries 百家企业使用名单

    如果您或您所在的公司正在使用此框架,请联系左侧的扣扣,告知我信息,我将为您添加链接: 以下内容为已反馈的用户,(收集始于:2016-08-08),仅展示99家: 序号 企业名称 企业网址 备注 1 山 ...

  3. UWP中实现自定义标题栏

    UWP中实现自定义标题栏 0x00 起因 在UWP开发中,有时候我们希望实现自定义标题栏,例如在标题栏中加入搜索框.按钮之类的控件.搜了下资料居然在一个日文网站找到了一篇介绍这个主题的文章: http ...

  4. ASP.NET Web API 跨域访问(CORS)

    一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...

  5. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  6. Beanstalkd一个高性能分布式内存队列系统

    高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...

  7. logstash file输入,无输出原因与解决办法

    1.现象 很多同学在用logstash input 为file的时候,经常会出现如下问题:配置文件无误,logstash有时一直停留在等待输入的界面 2.解释 logstash作为日志分析的管道,在实 ...

  8. SQL Server-聚焦UNIOL ALL/UNION查询(二十三)

    前言 本节我们来看看有关查询中UNION和UNION ALL的问题,简短的内容,深入的理解,Always to review the basics. 初探UNION和UNION ALL 首先我们过一遍 ...

  9. 显示本地openssl支持的加密算法

    参考页面: http://www.yuanjiaocheng.net/webapi/parameter-binding.html http://www.yuanjiaocheng.net/webapi ...

  10. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...