读书笔记–Docker容器与容器云(第2版)-01
Overview
内容有深度技术类图书大多是板砖,但大家都说买书一时爽,搬家XXX,最初自己也积累了很多板砖,后面开窍,开始买电子版。目前大多epub版本排版炸裂,几乎只支持在平板或手机上观看,限定竖屏,对于附带大量示例代码的书来讲,简直就是灾难,自己尝试过把屏幕竖起来,然后开了一个安卓虚拟机......感觉还可以,只是没办法像PDF一样,随心缩放而不改变排版,阅读效果不如网络流出的扫图版。
《Docker容器与容器云(第2版)》由浙江大学SEL实验室出版,内容主要分为Docker以及Docker云平台,前者包括Docker相关技术的底层实现,附有示例代码,后者介绍容器编排的平台,包括Swarm与Kubernetes,总体来讲内容的深度较大,需要长期消化,仅仅看书的话,适合作为面试材料,而需要自己动手实践时,应该搭配最新版的Docker源码。
Docker的迭代更新速度快,和书本没有对上的部分正好可以摸索,虽然docker的轻度使用简单,但底层依赖的技术复杂,我想对于读者来说,学习过程可以划分为理解概念、学习源码、编程,第一步就可以通过读完这本书来入门。
1. 容器与容器云
1.1 云计算平台
1.2 容器生态系统
1.3 容器的优点
- 持续部署与测试:开发环境与运行环境统一,简化持续集成、测试与发布过程
- 跨云平台支持:AWS、GCP、Azure、OpenStack、Arukas
- 环境标准化和版本控制:更精确的版本控制,从源码拓展到已编译的程序
- 高资源利用率与隔离:与底层共享操作系统,良好的资源隔离与限制能力
- 容器跨平台性与镜像:应用及依赖一同打包
- 易于理解且易用:易学易用,不过难以精通
- 应用镜像仓库:DockerHub
1.4 容器云
以容器为资源分割和调度的基本单位,封装整个软件运行时环境,供开发者与系统管理员构建、发布和运行分布式应用。例如Compose、Machine、Swarm等编排部署工具,以及CoreOS、Flynn、Deis和Kubernetes。
2. Docker基础
2.1 运行环境
- Linux的Docker环境是原生的
- 需要Linux内核3.10及以上,开启cgroups及namespace功能用于资源限制与资源隔离
- 非Linux平台使用Boot2Docker(早期依托VirtualBox),先创建虚拟机再调用
- 非Linux,不依赖VirtualBox的,使用操作系统提供的虚拟化功能,例如Windows的Hyper-V,macOS的HyperKit,原理也是创建虚拟机
- 若需要运行Kubernetes等容器编排工具,还是需要创建多个虚拟机来模拟环境
2.2 操作参数与命令架构