linux容器技术 pdf,Docker 容器与容器云pdf

Docker 容器与容器云 内容简介

本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理解读,以及Docker高级实践技巧;第二部分深入解读基于Docker的主流容器云技术,讲解了构建自己的容器云的方法,深入分析了3类Docker容器云技术的实现方法的设计思路,包括专注Docker容器编排与部署的容器云(Compose、Machine、Swarm、Fleet)、专注应用支撑的容器云(Flynn、Deis),以及一切皆容器的Kubernetes。

Docker 容器与容器云 目录

第一部分 Docker深入解读

第1章 从容器到容器云  2

1.1 云计算平台  2

1.2 容器,新的革命  3

1.3 进化:从容器到容器云  7

第2章 Docker基础  8

2.1 Docker的安装  8

2.2 Docker操作参数解读  9

2.3 搭建你的第一个Docker应用栈  16

2.3.1 Docker集群部署  16

2.3.2 第一个Hello World  17

2.3.3 开发、测试和发布一体化  27

第3章 Docker核心原理解读  28

3.1 Docker背后的内核知识  28

3.1.1 namespace资源隔离  28

3.1.2 cgroups资源限制  45

3.2 Docker架构概览  53

3.3 client和daemon  55

3.3.1 client模式  55

3.3.2 daemon模式  57

3.3.3 从client到daemon  63

3.4 libcontainer  66

3.4.1 libcontainer的工作方式  68

3.4.2 libcontainer实现原理  69

3.4.3 使用nsinit与libcontainer进行交互  74

3.5 Docker镜像管理  76

3.5.1 什么是Docker镜像  76

3.5.2 Docker镜像关键概念  78

3.5.3 Docker镜像操作解析  80

3.5.4 Docker容器的迁移方法  84

3.6 Docker存储驱动  85

3.6.1 存储驱动的功能与管理  86

3.6.2 aufs与Device Mapper驱动  87

3.7 Docker数据卷  93

3.7.1 数据卷的使用方式  94

3.7.2 数据卷原理解读  98

3.8 Docker网络管理  102

3.8.1 Docker网络基础  102

3.8.2 Docker daemon网络配置原理  107

3.8.3 libcontainer网络配置原理  111

3.8.4 Link原理解析  115

3.9 Docker与容器安全  118

3.9.1 Docker的安全机制  118

3.9.2 Docker安全问题  122

3.9.3 Docker安全的解决方案  126

第4章 Docker高级实践技巧  138

4.1 容器化思维  138

4.1.1 SSH服务器的替代方案  139

4.1.2 Docker内应用日志管理方案  139

4.1.3 其他技巧汇总  140

4.2 Docker高级网络实践  142

4.2.1 玩转Linux network namespace  143

4.2.2 pipework原理解析  148

4.2.3 pipework跨主机通信  154

4.2.4 OVS划分VLAN  159

4.2.5 OVS隧道模式  163

4.3 Dockerfile最佳实践  175

4.3.1 Dockerfile的使用  176

4.3.2 Dockerfile实践心得  180

4.4 Docker容器的监控手段  182

4.4.1 Docker容器监控维度  182

4.4.2 容器监控命令  183

4.4.3 常用的容器监控工具  186

4.5 容器化应用构建的基础:高可用配置中心  189

4.5.1 etcd经典应用场景  190

4.5.2 etcd实现原理  194

第二部分 Docker云平台解读

第5章 构建自己的容器云  210

5.1 再谈云平台的层次架构  210

5.2 从小工到专家  213

第6章 专注编排与部署:三剑客与Fleet  218

6.1 编排小神器Fig  218

6.1.1 再谈容器编排与部署  218

6.1.2 Compose原理:一探究竟  221

6.2 环境透明化工具Machine  225

6.2.1 Machine与虚拟机软件  226

6.2.2 Machine与IaaS平台  227

6.2.3 Machine小结  228

6.3 集群抽象工具Swarm  229

6.3.1 Swarm简介  229

6.3.2 试用Swarm  230

6.3.3 Swarm集群的多种创建方式  231

6.3.4 Swarm对请求的处理  233

6.3.5 Swarm集群的调度策略  233

6.3.6 Swarm与Machine  234

6.4 编排之秀Fleet  235

6.4.1 旧问题新角度:Docker distro  235

6.4.2 Fleet的原理剖析  239

第7章 专注应用支撑和运行时:Flynn 和Deis  245

7.1 Flynn,一个小而美的两层架构  245

7.1.1 第0层:容器云的基础设施   246

7.1.2 第1层:容器云的功能框架   246

7.1.3 Flynn体系架构与实现原理   247

7.2 谈谈Deis与Flynn   257

7.2.1 应用发布上的比较   258

7.2.2 关于Deis的一些思考   260

第8章 一切皆容器:Kubernetes   261

8.1 Kubernetes简介   261

8.2 Kubernetes的设计解读   262

8.2.1 一个典型案例:Guestbook. 263

8.2.2 Kubernetes核心概念剖析   265

8.3 Kubernetes核心组件解读   294

8.3.1 APIServer   294

8.3.2 Scheduler   301

8.3.3 Controller Manager   309

8.3.4 kubelet   314

8.3.5 kube-proxy   320

8.3.6 核心组件协作流程   325

8.4 Kubernetes用户认证授权与资源管理   328

8.4.1 namespace解析   328

8.4.2 基于token文件或客户端证书的认证机制   333

8.4.3 基于访问规则的授权机制   334

8.4.4 基于资源的授权控制AdmissionControl   336

8.5 Kubernetes网络核心原理   347

8.5.1 单pod单IP模型   348

8.5.2 pod和网络容器   350

8.5.3 实现Kubernetes的网络模型   353

8.6 Kubernetes高级实践   356

8.6.1 Kubernetes高级实践之应用健康检查   356

8.6.2 Kubernetes高级实践之高可用性   358

8.6.3 Kubernetes高级实践之日志   362

8.6.4 Kubernetes高级实践之集成DNS   364

8.6.5 Kubernetes高级实践之容器上下文环境   366

8.7 不要停止思考  368

第三部分 附录

附录A Docker的安装   372

附录B 阅读Docker源代码的神兵利器   379

附录C 快速熟悉开源项目   388

附录D cgroups的测试与使用   391

附录E cgroups子系统配置参数介绍   395

附录F Kubernetes的安装   400

后记   403

Docker 容器与容器云 精彩文摘

(4)如果镜像不属于上述情况,则Docker会凋用pushRepository方法来推送镜像到V1 registry,并根据待推送的repository和tag信息保证当且仅当某layer在enpoint上不存在时,才上传该layer。

3.5.4 Docker容器的迁移方法

Docker技术兴起的原动力之一,是在不同的机器上创造无差别的应用运行环境因此,能够方便地实现“在某台机器上导出一个Docker容器并且在另外一台机器上导入”这一操作,就显得非常必要。docker export与docker import命令实现了这一功能一当然,南于Docker容器与镜像的天然联系性,容器持久化的操作也可以通过镜像的方式达成,这里可以用到的疗法是docker save和docker load命令进行迁移。

所以,我们不难看到同样是对容器进行持久化操作,直接对容器进行持久化和使用镜像进行持久化的区别在于两者应用的对象有所不同,docker export用于持久化容器,而docker save用于持久化镜像:将容器导出后再导入(exported—imported)后的容器会丢失所有的历史,而保存后冉加载(saved—loaded)的镜像则没有丢失历史和层,这意味着后者可以通过docker tag命令实现层回滚,而前者不行。

更具体一些,我们可以从实现的角度来看一下export和save。

1.docker export命令导出容器

Docker server接收到相应的HTTP清求后,会通过daemon实例调用ContainerExport方法来进行具体的操作,这个过程的主要步骤如下。

(1)根据命令行参数(容器名称)找到侍导出的容器。

(2)对该容器调用container.Export()函数导出容器中的所有数据,包括:

挂载待导出容器的文件系统;

打包该容器basefs(即graphdriver上的挂载点)下的所有文件。以aufs为例,对于没有父镜像的容器,basefs对应的是aufs根目录下的dif璐径,否则对应mnt路径;

返回打包文档的结果并卸载该容器。

(3)将导出的数据回写到HTTP请求应答中。

e946a70026ac81cc682510a9b2d3f618.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker容器是一种轻量级、可移植的虚拟化技术。它能够将应用程序及其所有依赖打包成一个独立的、可随时部署的单元,称为容器。与传统的虚拟化技术相比,Docker容器更加灵活、高效,能够快速部署和扩展应用。 容器云(Container Cloud)是建立在云计算基础上的一种基于容器技术的云平台。它能够自动化管理和部署大规模的容器集群,提供资源调度、服务发现、监控等功能,使得应用的开发、测试和部署过程更加简便和高效。 Docker容器容器云之间存在密切的联系和相互依赖。首先,Docker容器作为一种轻量级的容器技术,是容器云平台的基础。容器云平台可以利用Docker容器来实现应用程序的隔离和资源管理,提供统一的管理接口和调度策略。 其次,容器云平台能够进一步增强Docker容器的功能和性能。通过容器云平台,可以实现容器集群的扩容和负载均衡,并提供高可用性和故障恢复的能力。容器云平台还可以提供统一的日志和监控平台,方便运维人员进行容器的管理和故障排查。 最后,Docker容器容器云的结合可以提供更加灵活和高效的应用部署和管理方式。通过Docker容器的打包和发布,可以实现应用在开发、测试和生产环境的无缝迁移,减少了运维的工作量和成本。而容器云平台的自动化管理和扩展能力,则使得应用的部署和升级更加便捷和快速。 综上所述,Docker容器容器云是相辅相成的关系。Docker容器作为一种虚拟化技术,为容器云平台提供了基础;而容器云平台则进一步增强了Docker容器的功能和性能,实现了高效的应用部署和管理。这种结合为企业提供了更加灵活、高效的云计算解决方案。 ### 回答2: Docker容器是一种轻量级的虚拟化技术,可以将应用程序及其依赖项打包在一个可移植的容器中,使其可以在任何环境中运行。容器云是基于云计算的平台,用于管理和部署多个Docker容器Docker容器的特点是轻便、快速、可移植和可靠。它们将应用程序打包成一个独立的单元,可以在不同的计算机和操作系统上运行,而不需要额外的配置和设置。容器不会与系统环境发生冲突,因此可以快速启动和停止,以及实现高效的资源利用。 而容器云是一种更高级的容器管理和部署平台。它可以自动化地管理大量的Docker容器,并提供了更多的功能和服务。容器云可以根据应用程序的需求自动扩展容器的数量,确保应用程序始终具有足够的资源来运行。它还可以提供负载均衡、容器间通信和服务发现等功能,简化了应用程序的开发和部署过程。 容器云还可以提供监控、日志记录和故障恢复等功能,帮助开发人员更好地管理和维护应用程序。它还支持多租户和权限管理,确保不同用户之间的容器隔离和安全性。 总而言之,Docker容器容器云是一对密切相关的概念。Docker容器为应用程序提供了轻量级的虚拟化环境,而容器云则在此基础上提供了更高级的管理和部署功能。它们的结合可以极大地简化应用程序的开发和部署过程,并提高应用程序的可靠性和可扩展性。 ### 回答3: Docker容器是一个轻量级、可移植和可扩展的容器化技术。它允许开发人员将应用程序及其依赖项打包为一个标准化的容器,然后可以在任何支持Docker的环境中运行。 Docker容器的主要优点包括: 1. 灵活性:Docker容器提供了一个独立的运行环境,可以将应用程序及其依赖项打包在一起。这使得应用程序的部署和迁移变得简单和可预测。 2. 资源隔离:每个Docker容器都有自己的文件系统、进程空间和网络接口,这意味着容器之间的应用程序资源相互隔离,可以避免相互干扰。 3. 可拓展性:Docker容器可以快速创建和销毁,并可以自动进行扩展和缩减,以适应更改的负载需求。 容器云是建立在Docker容器技术之上的云计算平台。它可以用来管理和编排大规模的容器集群,并提供一套高级特性,使得容器的部署、监控和扩展变得更加便捷。 容器云的主要功能包括: 1. 集中管理:容器云提供了一个集中化的管理平台,可以轻松地管理和监控大规模容器集群中的所有容器实例。 2. 自动化部署:容器云可以根据用户定义的规则和策略,自动部署和扩展容器实例,以适应不同的负载需求。 3. 服务发现和负载均衡:容器云可以自动发现和管理容器集群中的服务,并提供负载均衡功能,以确保每个容器实例都能够平衡地处理请求。 4. 安全和可靠性:容器云提供了一系列安全措施,如访问控制、容器隔离和自动恢复,以确保容器应用程序的安全和可靠性。 总之,Docker容器容器云是一对密切相关的概念。Docker容器提供了一种轻量级和标准化的打包和部署方式,而容器云则提供了一个管理和编排大规模容器集群的平台,以简化容器的运维工作。通过结合使用这两种技术,开发人员和运维团队可以更高效地部署和管理容器化的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值