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 ...
随机推荐
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- KMP算法求解
// KMP.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespac ...
- 菜鸟学Struts2——零配置(Convention )
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...
- TypeScript Vs2013 下提示Can not compile modules unless '--module' flag is provided
VS在开发TypeScript程序时候,如果import了模块有的时候会有如下提示: 这种情况下,只需要对当前TypeScript项目生成设置为AMD规范即可!
- Mysql存储引擎比较
Mysql作为一个开源的免费数据库,在平时项目当中会经常使用到,而在项目当中我们的着重点一般在设计使用数据库上而非mysql本身上,所以在提到mysql的存储引擎时,一般都不曾知道,这里经过网上相关文 ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- 星浩资本快速发展引擎:IT就是生产力
星浩资本成立于2010年,是一家涵盖私募基金.开发管理.商业与现代服务业三大业务范围的综合性管理公司,专注于投资中国首创.高成长性.高回报率的创新型城市综合体. 年轻的星浩资本在商业投资上有其独到的商 ...
- ViewController respondsToSelector 错误的解决方法
原因解析:(来自别人博客分析)某个公共类或系统提供的控件,存在delegate方法,当创建此公共控件的容器类已经销毁,而这个控件对应的服务是在其它run loop中进行的,控件销毁或者需要进行状态通知 ...