模块二十_Docker容器虚拟化技术

序言:

文章内容输出来源:拉勾教育Java高薪训练营。
本篇文章是学习课程中的一部分课后笔记

一、 Docker 介绍、概念

1. Docker 介绍
  • Docker是基于Go语言实现的开源容器项目,诞生于2013年年初,最 初发起者是dotCloud公司(Docker Inc)、Docker项目已加入了Linux基金会,并遵循Apache2.0协议,全部开源代码均在https://github.com/docker/docker上进行维护。
    Docker首次为应用的开发、运行和部署提供了“一站式”的实用解决方案。

  • Linux容器技术(LXC)
    早期的Docker是基于Linux容器技术(Linux Containers,LXC)的。
    最早的容器技术可以追溯到1982 年Unix系列操作系统上的chroot工具(直到今天,主流的Unix、Linux操 作系统仍然支持和带有该工具)。
    早期的容器实现技术包括Sun Solaris 操作系统上的Solaris Containers(2004年发布),FreeBSD操作系统上的 FreeBSD jail(2000年左右出现),以及GNU/Linux上的Linux-VServer和 OpenVZ。

  • 从Linux容器到Docker
    在LXC的基础上,Docker进一步优化了容器的使用体验Docker提供了各种容器管理工具(如分发、版本、移植等)让用户无需关注底层的操作,可以更简单明了地管理和使用容器Docker通过引入分层文件系统构建(aufs)和高效的镜像机制,降低了迁移难度,极大地提升了用户体验。
    自0.9版本开始,Docker 开发了libcontainer项目,作为更广泛的容器驱动实现,从而替换掉了LXC的实现。

2. Docker的应用场景
  • 快速,一致地交付应用程序、镜像打包环境,避免了环境不一致的问题Docker可以为开发人员提供 标 准化 的本地工作环境给应用程序和服务,从而简化了开发生命周期。容器非常适合持续集成和持续交付(CI / CD)工作流程
    如果有以下场景可以使用Docker交付:
    • 开发人员在本地编写代码,并使用Docker容器与其他同事共享劳动成果。
    • 使用Docker将应用程序推送到测试环境中,并执行自动和手动测试。
    • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中以
      进行测试和验证。
    • 测试完成后,将修补程序推送给生产环境就像将更新的镜像推送到生产环境一样简单。
  • 响应式部署和扩展 Docker是基于容器的平台允许高度可移植的工作负载。Docker容器可以在开发人员的本地笔记本电脑上,数据中心中的物理或虚拟机上,云提供商上或混合环境中运行。 Docker的可移植性和轻量级的特性还使可以轻松地动态管理工作负载,并根据业务需求指示实时扩展或拆除应用程序和服务。
  • 在同一个硬件上运行更多工作负载 Docker轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行,经济高效的替代方案,因此我们可以利用更多的计算能力来实现业务目标。Docker非常适合于高密度环境以及中小型部署,而需要用更少的资源做更多的事情。
3.Docker与虚拟机比较
  • 3.1 虚拟化

虚拟化技术就是在操作系统上多加了一个虚拟化层(Hypervisor),可以将物理机的CPU、内存、硬盘、网络等资源进行虚拟化,再通过虚拟化出来的空间上安装操作系统,构建虚拟的应用程序执行环境。这就是我们通常说的虚拟机。
比如:VMware 、VirtualBox、KVM等。

  • 虚拟化技术的优点:
    提升IT效率
    降低运维成本
    更快地部署工作负责
    提高应用性能
    提高服务器可用性
    消除服务器梳理剧增情况和复杂性

  • 虚拟机的缺点:
    占用资源较多
    性能较差
    扩展能力较差
    环境迁移能力较差

  • 3.2 容器化
    借鉴了集装箱的解决方案,提出了类似集装箱的方式封装应用以及它的运行环境,将应用和环境打包成一个轻量化、可移植、自包含的容器。
    容器是轻量级的,因为它们不需要虚拟机管理程序的额外负载,而是直接在主机的内核中运行。
    这意味着与使用虚拟机相比,可以在给定的硬件组合上运行更多的容器。
    甚至可以在实际上是虚拟机的主机中运行Docker容器
  • 容器有四个特点:
    容器共享宿主机内核
    容器使用内核的功能对进程进行分组和资源限制
    容器通过命名空间保证隔离
    容器像是轻量级的VM(占用空间更少,速度更快),但不是虚拟机
对比.png

二、 Docker核心组件

1. Docker引擎

Docker使用客户端-服务器架构;
Docker客户端是用户与Docker交互的主要方式,与Docker守护进程(Docker引擎)进行通信该守护进程完成了构建,运行和分发Docker容器的繁重工作;
Docker客户端和守护程序可以在同一系统上运行,也可以将Docker客户端连接到远程Docker守护程序;
Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信;
Docker守护进程侦听Docker API请求并管理Docker对象,例如镜像,容器,网络和卷等,守护程序还可以与其他守护程序通信以管理Docker服务。

2. Docker镜像

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。
镜像是基于联合(Union)文件 系统的一种层式的结构,由一系列指令一步一步构建出来。
比如:
添加一个文件;
执行一个命令;
打开一个端口。
镜像是创建Docker容器的基础。通过版本管理和增量的文件系统, Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户可以从网上下载一个已经做好的应用镜像,并直接使用我们可以利用Dockerfile构建自己的镜像。

3. Docker容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是镜像的一个运行实例。
可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不可见的。 可以把容器看做是一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。
容器是基于镜像启动起来的,容 器中可以运行一个或多个进程。
镜像是Docker生命周期 中的构建或打包阶段,而容器则是启动或执行阶段。
镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

4. Docker仓库

Docker仓库类似于代码仓库,它是Docker集中存放镜像文件的场所。
仓库注册服务器(Registry)是存放仓库的地方,其上往往存放着多个仓库,每个仓库集中存放某一类镜像,往往包 括多个镜像文件,通过不同的标签(tag)来进行区分;
根据所存储的镜像公开分享与否,Docker仓库可以分为公开仓库 (Public)和私有仓库(Private)两种形式。
目前,最大的公开仓库是 官方提供的Docker Hub,其中存放了数量庞大的镜像供用户下载。国内不少云服务提供商(如时速云、阿里云等)也提供了仓库的本地源,可以提供稳定的国内访问。Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。

仓库.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342