《Docker进阶与实战》——2.5节容器造就Docker

2.5 容器造就Docker
关于容器是否是Docker的核心技术,业界一直存在着争议。有人认为Docker的核心技术是对分层镜像的创新使用,有人认为其核心是统一了应用的打包分发和部署方式,为服务器级别的“应用商店”提供了可能,而这将会是颠覆传统行业的举措。事实上,这一系列创新并不是依赖于容器技术的,基于传统的hypervisor也可以做到,业界也由此诞生了一些开源项目,比如Hyper、Clear Linux等。另外,Docker官方对Docker核心功能的描述“Build, Ship and Run”中也确实没有体现与容器强相关的内容。
尽管如此,笔者依然认为容器是Docker的核心技术之一。
首先从Docker的诞生历史上,它主要是为了完善当时不愠不火的容器项目LXC,使用户可以更方便地使用容器,让容器可以更好地应用到项目开发和部署的各个流程中。从一开始LXC就是Docker上的唯一容器引擎也可以看出这一点。所以可以说,Docker是为容器而生的。
另外,更重要的一点,跟Docker一起发展和被大家熟知的,还有叫做“微服务”(micro service)的设计哲学,而这会把容器的优势发挥得更加淋漓尽致。容器作为Linux平台的轻量级虚拟化,其核心优势是跟内核的无缝融合,其在运行效率上的优势和极小的系统开销,与需要将各个组件单独部署的微服务应用完美融合。而且微服务在隔离性问题上更加可控,这也避免了容器相对传统虚拟化在隔离性上的短板。所以,未来在微服务的设计哲学下,容器必将跟Docker一起得到更加广泛的应用和发展。
在理解了容器,理解了容器的核心技术Cgroup和Namespace,理解了容器技术如何巧妙且轻量地实现“容器”本身的资源控制和访问隔离之后,可以看到Docker和容器是一种完美的融合和相辅相成的关系,它们不是唯一的搭配,但一定是最完美的组合。与其说是容器造就了Docker,不如说是它们造就了彼此,容器技术让Docker得到更多的应用和推广,Docker也使得容器技术被更多人熟知。在可预见的未来,它们也一定会彼此促进,共同发展,在全新的解决方案和生态系统中扮演着重要的角色。

时间: 2025-01-01 13:20:39

《Docker进阶与实战》——2.5节容器造就Docker的相关文章

《Docker进阶与实战》——导读

目 录 序 前 言 第1章 Docker简介1.1 引言1.2 功能和组件1.3 安装和使用1.4 概念澄清1.5 本章小结第2章 关于容器技术2.1 容器技术的前世今生2.2 一分钟理解容器2.3 Cgroup介绍2.4 Namespace介绍2.5 容器造就Docker2.6 本章小结第3章 理解Docker镜像3.1 Docker image概念介绍3.2 使用Docker image3.3 Docker image的组织结构3.4 Docker image扩展知识3.5 本章小结第4章

《Docker进阶与实战》——1.3节安装和使用

1.3 安装和使用1.3.1 Docker的安装 Docker的安装和使用有一些前提条件,主要体现在体系架构和内核的支持上.对于体系架构,除了Docker一开始就支持的x86-64,其他体系架构的支持则一直在不断地完善和推进中,用户在安装前需要到Docker官方网站查看最新的支持情况.对于内核,目前官方的建议是3.10以上的版本,除了内核版本以外,Docker对于内核支持的功能,即内核的配置选项也有一定的要求(比如必须开启Cgroup和Namespace相关选项,以及其他的网络和存储驱动等).如

《Docker进阶与实战》——3.2节使用Docker image

3.2 使用Docker image Docker内嵌了一系列命令制作.管理.上传和下载镜像.可以调用REST API给Docker daemon发送相关命令,也可以使用client端提供的CLI命令完成操作.本书的第7章会详细阐述Docker REST API的细节,本节则主要根据功能对涉及image的命令进行说明.下面就从Docker image的生命周期角度说明Docker image的相关使用方法. 3.2.1 列出本机的镜像 下面的命令可以列出本地存储中镜像,也可以查看这些镜像的基本信

《Docker进阶与实战》——1.4节概念澄清

1.4 概念澄清 本书的附录A是关于Docker常见问题的解答,但对于Docker基本概念方面的问题,希望读者可以在阅读完本章后就有清晰的认识,所以本节会针对与Docker概念息息相关的几个常见问题进行说明.1.4.1 Docker在LXC基础上做了什么工作 首先我们需要明确LXC的概念,但这常常有不同的认识.LXC目前代表两种含义: LXC用户态工具(https://github.com/lxc/lxc). Linux Container,即内核容器技术的简称. 这里通常指第二种,即Docke

《Docker进阶与实战》——3.3节Docker image的组织结构

3.3 Docker image的组织结构上节讲到Docker image是用来启动容器的只读模板,提供容器启动所需要的rootfs,那么Docker是怎么组织这些数据的呢? 3.3.1 数据的内容Docker image包含着数据及必要的元数据.数据由一层层的image layer组成,元数据则是一些JSON文件,用来描述数据(image layer)之间的关系以及容器的一些配置信息.下面使用overlay存储驱动对Docker image的组织结构进行分析,首先需要启动Docker daem

《Docker进阶与实战》——第2章关于容器技术

第2章关于容器技术在第1章对Docker的介绍中,已经知道容器技术是Docker的一项基础技术,而在当前对Docker的火热讨论中,容器也时常跟Docker一起被提及.作为Docker的进阶书籍,有必要对容器技术做一些探讨,以深刻理解Docker与相关技术之间的关联.

《Docker进阶与实战》——2.3节Cgroup介绍

2.3 Cgroup介绍2.3.1 Cgroup是什么 Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS,这些资源主要包括CPU.内存.block I/O和网络带宽.Cgroup从2.6.24开始进入内核主线,目前各大发行版都默认打开了Cgroup特性. 从实现的角度来看,Cgroup实现了一个通用的进程分组的框架,而不同资源的具体管理则是由各个Cgroup子系统实现的.截止到内核4.1版本,Cgroup

《Docker进阶与实战》——1.1节引言

1.1 引言1.1.1 Docker的历史和发展自从2013年年初一个叫dotCloud的PaaS服务供应商将一个内部项目Docker开源之后,这个名字在短短几年内就迅速成为一个热词.似乎一夜之间,人人都开始谈论Docker,以至于这家公司干脆出售了其所持有的PaaS平台业务,并且改名为Docker.Inc,从而专注于Docker的开发和推广.对于Docker,目前的定义是一个开源的容器引擎,可以方便地对容器(关于容器,将在第2章详细介绍)进行管理.其对镜像的打包封装,以及引入的Docker R

《Docker进阶与实战》——3.1节Docker image概念介绍

3.1 Docker image概念介绍简单地说,Docker image是用来启动容器的只读模板,是容器启动所需要的rootfs,类似于虚拟机所使用的镜像.首先需要通过一定的规则和方法表示Docker image,如图3-1所示. 图3-1是典型的Docker镜像的表示方法,可以看到其被"/"分为了三个部分,其中每部分都可以类比Github中的概念.下面按照从左到右的顺序介绍这几个部分以及相关的一些重要概念.Remote docker hub:集中存储镜像的Web服务器地址.该部分的