一 简介

Docker最初是dotCloud公司的一个内部项目,诞生于 2013 年初,由google公司开源的Go语言开发。
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

二 特性

2.1 docker特性

  • 标准化
    • 保证一致的运行环境
    • 弹性伸缩,快速扩容
    • 方便迁移
    • 持续集成、持续交付与持续部署
  • 高性能
    • 不需要进行硬件虚拟以及运行完整的操作系统
  • 轻量级
    • 快速启动
    • 隔离性
    • 进程隔离

2.2 容器的组成

容器=cgroup+namespace+rootfs+容器引擎(用户态工具)
  • Cgroup:资源控制
  • Namespace:访问隔离
  • rootfs:文件系统隔离
  • 容器引擎:生命周期控制

2.2 docker与KVM

虚拟化技术依赖物理CPU和内存,是硬件级别的;
而docker构建在操作系统上,利用操作系统的containerization技术,所以docker甚至可以在虚拟机上运行。 虚拟化系统一般都是指操作系统镜像,比较复杂,称为“系统”;
而docker开源而且轻量,称为“容器”,单个容器适合部署少量应用,比如部署一个redis、一个memcached。 传统的虚拟化技术使用快照来保存状态;
而docker在保存状态上不仅更为轻便和低成本,而且引入了类似源代码管理机制,将容器的快照历史版本一一记录,切换成本很低。 传统的虚拟化技术在构建系统的时候较为复杂,需要大量的人力;
而docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile来指导系统环境和依赖,这样对于持续交付十分有利。
 
特性
容器
虚拟机
部署难度
简单
部署相对复杂
启动
秒级
分钟级
硬盘使用
一般为MB
一般为GB
性能
原生
弱于
系统支持量
单机支持上千个容器
一般几十个
管理效率
管理简单
管理复杂

三 场景

Docker通常用于如下场景:
  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

四 架构

  • Docker客户端 – Docker
docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。
  • Docker服务端 – Docker Daemon
docker服务端是一个服务进程,管理着所有的容器。
提示:大部分情况下,docker服务端和客户端运行在一台机器上。
  • Docker镜像 – Image
docker镜像,一个能够运行在docker容器上的一组程序文件,是一个只读的模板。
  • Docker容器 – Docker Container
docker容器,就是运行程序的载体。镜像(Image)是静态的定义,容器是镜像运行时的实体。docker容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
  • Docker镜像仓库 -- Registry
Docker仓库是集中存放镜像文件的场所,Docker仓库分为公开仓库(Public)和私有仓库(Private)两种形式。Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等),镜像不包含任何动态数据。

001.Docker简介概述的更多相关文章

  1. 001.Ceph简介概述

    一 Ceph简介 Red Hat Ceph是一个分布式的数据对象存储,系统设计旨在性能.可靠性和可扩展性上能够提供优秀的存储服务.分布式对象存储是存储的未来,因为它们适应非结构化数据,并且客户端可以同 ...

  2. Docker 简介与shell操作使用

    一.Docker概述 1.Docker简介        Docker是一个开源的应用容器引擎:是一个轻量级容器技术:Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去 ...

  3. 进击的docker 一 : Docker 简介

    Docker简介 1.什么是docker 1.1.docker 起源 开源项目 诞生2013年初 GO语言开发实现 遵从了Apache2.0协议 项目代码在GitHub维护 1.2.docker目标 ...

  4. Docker简介

    Docker简介 1.容器虚拟化,比传统的虚拟化轻量 2.2013年出现,发展非常迅猛 3.Redhat在6.5版本开始支持docker 4.使用go语言开发,基于apache2.0协议 5.开源原件 ...

  5. Docker 简介及安装

    Docker简介: 什么是Docker?将应用程序自动部署到容器 go语言开源引擎  Github地址:https://github.com/docker/docker 2013年初 dotCloud ...

  6. 【转】Docker简介与入门

    转自:https://segmentfault.com/a/1190000000448808 Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的东西已经很多了.不过本文探讨了Doc ...

  7. Docker简介以及操作

    Docker 简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...

  8. Docker简介以及安装

    Docker简介以及安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是容器 1.一种虚拟化方案 与传统的虚拟机不同,传统的虚拟机是通过中间层将一台或多台独立的机器虚拟运 ...

  9. Docker简介与安装配置

    目录 Docker简介 什么是Docker 为啥要用容器 Docker Engine Docker架构说明 Docker安装 Docker版本介绍 Ubuntu安装docker-ce CentOS7安 ...

随机推荐

  1. mvc小技巧

    1.从Controller后台赋值的html标签显示在前台不起作用的问题?比如后台:ViewData["Message"]="<span  style=\" ...

  2. 【Elasticsearch】Elasticsearch在windows下的安装方法

    版本 elasticsearch-2.4.4 2.4.4版本下载地址 下载地址1 下载地址2 启动 进入bin目录,双击elasticsearch.bat: 在浏览器中输入http://localho ...

  3. 数据库运维平台~inception回滚功能

    一 简介:inception的另一个激动人心的功能,很强大.二 功能简介: inception会针对已经执行sql语句进行1 记录 2 生成回滚语句三 备份:   1 启用远程备份机制(强烈建议一台单 ...

  4. 【逆向知识】VS程序反汇编找main函数

    工具:OllyICE 调试快捷键说明: F2键:设置断点,只要在光标定位的位置 F4键:程序运行到光标处 F7键:单步步入.功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入 ...

  5. grep基础用法

    功能:全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具. grep  yuan  filename :在文件中搜索yuan 这个字符串,并把含有此字符串的行打印出来,也可以多文件搜索.  g ...

  6. mysql锁表与不锁表设置主从复制的方法

    有时候MySQL主从同步不一致比较严重的时候,需要手动同步.先说说在锁表的情况下如何操作:以下是其简要过程 1.先对主库锁表FLUSH TABLES WITH READ LOCK; 2.备份数据mys ...

  7. activiti报错ProcessEngines.getDefaultProcessEngine()为null

    activiti报错ProcessEngines.getDefaultProcessEngine()为null 文件名错误,默认加载classpath下面的activiti.cfg.xml,而不是ac ...

  8. 转载:《RESTful API 设计指南》 阮一峰

    原文:http://www.ruanyifeng.com/blog/2014/05/restful_api 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面 ...

  9. Python-GIL 进程池 线程池

    5.GIL vs 互斥锁(*****) 1.什么是GIL(Global Interpreter Lock) GIL是全局解释器锁,是加到解释器身上的,保护的就是解释器级别的数据 (比如垃圾回收的数据) ...

  10. h5新API之WebStorage解决页面数据通信问题

    localStorage相信大家都不陌生,今天我们要讨论的不是怎么存储数据,获取数据.而是看看WebStorage的一些妙用,相信大家在开发中遇到过这样一个场景,一个页面中嵌套一个iframe,ifr ...