1.1 什么是Docker

slogan:Build Ship Run Any App Anywher。关键在于Ship,通过把程序和程序运行所需要的环境一起交付。

Linux容器技术:

  Docker是在Linuk容器(Linux Containers)技术的基础上发展起来的。LUX把单个操作系统的资源划分到多个孤立的组里,在孤立的组里平衡有冲突的资源使用需求。与虚拟机相比,这种通过划分组来平衡资源冲突的方式代价更小,它不需要指令级别模拟也不需要即使编译。容器直接在本地CPU上运行。

1.2为什么要使用Docker

  • 更快的交付和部署。开发人员使用镜像构建标准开发环境,运维和测试人员使用镜像来获得和开发人员相同的运行环境。开发环境和测试运维环境无缝对接,节约开发、测试、部署时间。
  • 更高效的资源利用。相较于虚拟机而言Docker不需要额外的Hypervisor支持,Docker是内核级别的虚拟化,实现更高的性能。
  • 更简单的更新管理。使用Dockerfile,通过简单的修改就可以代替大量的更新操作。

1.3 Docker与虚拟化

  虚拟化:虚拟化是对计算机资源的抽象,是为了更好的管理计算机资源。让同时运行在一个计算机上的多个进程以为自己能够独占当前操作系统资源

  Docker虚拟化与虚拟机比较

  • Docker是操作系统级的虚拟化,内核通过创建多个虚拟的操作系统实例来隔离进程。虚拟机是硬件辅助虚拟化,虚拟的是整个硬件。
  • 虚拟机需要模拟一个独立的OS Kernel而Docker不需要
  • 虚拟机需要一个虚拟机管理程序如VMware,而Docker只需要一个Docker引擎,后者的开销更小
  • Docker更快妙级,虚拟机分级别
  • Docker对系统资源需求更少
  • Docker通过类似Git理念来方便用户获取、分发更新镜像
  • Docker通过dockerfile实现灵活的创建、部署机制

  虚拟机和Docker本质的区别在于虚拟化的方式不同,虚拟机是一种硬件级别的虚拟化,通过软件去模拟硬件系统,并且虚拟机里需要虚拟OS Kernel。Docker是一种容器,是一种隔离机制,是软件级别的模拟。

第1章 初始Docker容器的更多相关文章

  1. Flask 教程 第十九章:Docker容器上的部署

    本文翻译自The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers 这是Flask Mega-Tutorial系列的第十九部分 ...

  2. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  3. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)

    上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...

  4. 理解Docker(4):Docker 容器使用 cgroups 限制资源使用

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  5. docker 源码分析 五(基于1.8.2版本),Docker容器的创建

    前面讲到了docker容器得镜像,镜像其实是docker容器的静态部分,而docker容器则是docker镜像的动态部分,即启动了一个进程来运行,本篇最要来分析一下怎样创建并运行一个容器. 创建一个容 ...

  6. 使用 Device Mapper来改变Docker容器的大小

    作者:Jérôme Petazzoni ( Docker 布道师) 译者:Mark Shao ( EMC 中国高级工程师) 如果在 CentOS . REHL . Fedor 或者其他默认没有 AUF ...

  7. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  8. Docker容器入门

    为什么要看docker 从去年起就或多或少的接受了docker的熏陶,主要还是Infoq在去年有很多关于docker的实践视频讲座,记得有一篇是<Docker在雪球的技术实践>,当时听的也 ...

  9. Docker 容器测试全探索

    导读 当我们构建好Docker镜像并利用多套容器共同组合成应用程序,建立起持续交付通道,了解了如何将新创建的镜像纳入到生产或者测试环境当中之后,新的问题来了——我们该如何测试自己的Docker容器?测 ...

随机推荐

  1. Mongo 用户管理

    开启用户管理 auth = true 在配置文件或者参数中设置为改选项 开启认证服务,注意一点,很多人说在没有设置用户和配置用户之前,应该先不要开启,等设置完用户后再开启该参数,目前在win2008 ...

  2. 五一之起一台服务器玩玩-u盘安装centos

    之前淘宝买的300块钱笔记本,就是拿来练手的,但是命令基本都知道了,不来练手,学习下去就没有动力了啊. 对于新的笔记本,我们怎么安装系统呢?能去官网就去官网,你绝对没有体验过睡一晚早上起来服务器就被黑 ...

  3. JDK源码分析(7)之 Reference 框架概览

    对于Reference类大家可能会比较陌生,平时用的也比较少,对他的印象可能仅停在面试的时候查看引用相关的知识点:但在仔细查看源码后发现Reference还是非常实用的,平时我们使用的类都是强引用的, ...

  4. [二十]JavaIO之StringReader 与 StringWriter

    功能简介 还记得前面说过的CharArrayReader 和 CharArrayWriter吗? CharArray 是数据源 CharArrayReader 是读,  从一个CharArray 中读 ...

  5. 痞子衡嵌入式:并行接口NAND互操作性标准(JEDEC-JESD230)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是JESD230标准. 众所周知,最早也最流行的Raw NAND接口标准是ONFI标准,痞子衡在 并行接口NAND标准(ONFI)及SLC ...

  6. Python并发编程之实战异步IO框架:asyncio 下篇(十一)

    大家好,并发编程 进入第十一章. 前面两节,我们讲了协程中的单任务和多任务 这节我们将通过一个小实战,来对这些内容进行巩固. 在实战中,将会用到以下知识点: 多线程的基本使用 Queue消息队列的使用 ...

  7. MySQL 8.0版本连接报错:Could not create connection to database server.

    准备搭建一个Spring Boot 组合mybatis的项目,数据库采用的是MySQL 8.0.11按照以往的配置,使用插件mybatis-generator-maven-plugin生成代码时,一直 ...

  8. 冒泡排序/选择排序/插入排序(c#)

    ---恢复内容开始--- 每次看这些排序都像没见过一样,完全理解不了,可是不久前明明了解的十分透彻.记下来记下来记下来! 1>>>冒泡排序:相邻的两两相比 把大的(或者小的)放后边, ...

  9. sql server 2008R2 导出insert 语句(转载)

    转载来源: https://blog.csdn.net/zengcong2013/article/details/78648988. sql server 2008R2数据库导出表里所有数据成inse ...

  10. Net中获取程序集路径

      从内存中加载的程序集,无路径   IIS中路径 protected void Page_Load(object sender, EventArgs e) { Response.Write(&quo ...