Featured image of post 《每天5分钟玩转Docker容器技术》读书笔记 | 第一篇 启程 | 第1章 鸟瞰容器生态系统 | 记忆类问题

《每天5分钟玩转Docker容器技术》读书笔记 | 第一篇 启程 | 第1章 鸟瞰容器生态系统 | 记忆类问题

Docker现在几乎是容器的代名词,围绕Docker还有一个生态系统。Docker是这个生态的基石,完善的生态系统才是保障Docker及其容器技术能够健康发展的决定因素🟠容器核心技术🟠容器平台技术🟠容器支持技术

系列文章

同系列其它文章

全部问题

1
2
3
4
5
6
7
--------------------------------------------------------------------------------------
| ID | UpdateTime          | Question
--------------------------------------------------------------------------------------
| 1  | 2024-02-26 19:37:35 | 容器核心技术
| 2  | 2024-02-27 13:55:01 | 容器平台技术
| 3  | 2024-02-27 17:53:33 | 容器支持技术
--------------------------------------------------------------------------------------

容器核心技术

🌞 ︎阳历 2024年02月26日 星期一 | 🌙农历 龙年(2024)正月十七 | 🕛晚上 7点37分35秒 | 更新 🏳️‍🌈

全部知识点

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
--------------------------------------------------------------------------------------
├── 1.什么是容器核心技术?
├── 2.容器核心技术包含哪些内容
├── 3.OCI容器规范是什么?
├── 4.容器runtime是什么?
├── 5.容器管理工具是什么?
├── 6.容器定义工具是什么?
├── 7.Registry
├── 8.容器OS
--------------------------------------------------------------------------------------
什么是容器核心技术?
  1. 容器核心技术是指能够让Container在host上运行起来的那些技术。
容器核心技术包含哪些内容
  1. 容器规范。
  2. 容器runtime。
  3. 容器管理工具。
  4. 容器定义工具。
  5. Registries。
  6. 容器OS。
OCI容器规范是什么?
  1. 容器不光是Docker,还有其它容器,比如CoreOS的rkt。为了保证容器生态的健康发展,保证同容器之间能够兼容,包含Docker、CoreOS、Google在内的若干公司共同成立了一个叫Open Container Initiative(OCI)的组织,其目的是制定开放的容器规范。
  2. 目前OCI发布了两个规范,runtime spec和image format spec。有了这个两个规范,不同组织和厂商开发的容器能够在不同的runtime上运行。这样就保证了容器的可移植性和互操作性。
容器runtime是什么?
  1. runtime是容器真正运行的地方。runtime需要跟操作系统kernel紧密协作,为容器提供运行环境。
  2. 容器和runtime可以类比与Java程序和JVM,Java程序好比就是容器,JVM则好比是runtime,JVM为Java程序提供运行环境。同样的道理,容器只有在runtime中才能运行。
  3. Docker开发了自己的容器runtime,符合OCI规范。
容器管理工具是什么?
  1. 光有容器runtime还不够,用户得有工具来管理容器。容器管理工具对内与runtime进行交互,对外为用户提供interface;这就好比除了JVM,还得提供Java命令让用户能够启停应用。
  2. Docker的容器管理工具是docker engine。通常我们提到的Docker,一般就是指docker engine。
容器定义工具是什么?
  1. 容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存、共享和重建。
  2. docker image是docker容器的模板,runtime根据docker image创建容器。
  3. dockerfile是包含若干命令的文本文件,可以通过这些命令创建出docker image。
Registry
  1. 容器是通过image创建的,需要有一个仓库来统一存放image,这个仓库就叫做Registry。
  2. 企业可以用Docker Registry构建私有的Registry;Docker Hub是Docker为公众提供的托管Registry,上面有很多现成的image,为Docker用户提供了极大的便利。
容器OS
  1. 由于有容器runtime,几乎所有的Linux、MAC OS和Windows都可以运行容器,但这并没有妨碍容器OS的问世;容器OS是专门运行容器的操作系统。与常规OS相比,容器OS通常体积更小,启动更快。因为是为容器定制的OS,通常他们运行容器的效率会更高。
  2. 例如:Ubuntu Core。

容器平台技术

🌞 ︎阳历 2024年02月27日 星期二 | 🌙农历 龙年(2024)正月十八 | 🕛下午 1点55分01秒 | 更新 🏳️‍🌈

全部知识点

1
2
3
4
5
6
7
--------------------------------------------------------------------------------------
├── 1.什么是容器平台技术?
├── 2.容器平台技术包括哪些?
├── 3.容器编排引擎
├── 4.容器管理平台
├── 5.基于容器的PaaS
--------------------------------------------------------------------------------------
什么是容器平台技术?
  1. 容器核心技术使得容器能够在单个host上运行,而容器平台技术能够让容器作为集群在分布式环境中运行。
容器平台技术包括哪些?
  1. 容器平台技术包括容器编排引擎、容器管理平台和基于容器的PaaS。
容器编排引擎
  1. 基于容器的应用一般会采用微服务架构。在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过API对外提供服务。为了保证 应用的高可用,每个组件都可能会运行多个相同的容器。这些容器会组成集群,集群中的容器会根据业务需要被动态地创建、迁移和销毁。
  2. 这样一个基于微服务架构地应用系统实际上是一个动态地可伸缩的系统。这对部署环境提出了新的要求,我们需要一种高效的方法来管理容器集群。而这,就是容器编排引擎要干的工作。
  3. 所谓编排,通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机地组合成微服务应用,实现业务需求。
  4. docker swarm是Docker开发地容器编排引擎;kubernetes是Google领导开发地开源容器编排引擎,同时支持Docker和CoreOS容器。
容器管理平台
  1. 容器管理平台是架构在容器编排引擎之上的一个更为通用的平台。通常容器管理平台能够支持多种编排引擎,抽象了编排引擎的底层实现细节,为用户提供更方便的功能;比如application catalog(应用目录)和一键应用部署。
基于容器的PaaS
  1. 基于容器的PaaS为微服务应用开发人员和公司提供了开发、部署和管理应用的平台,使用户不必关心底层基础设施而专注于应用的开发。

容器支持技术

🌞 ︎阳历 2024年02月27日 星期二 | 🌙农历 龙年(2024)正月十八 | 🕛傍晚 5点53分33秒 | 更新 🏳️‍🌈

全部知识点

1
2
3
4
5
6
7
8
9
--------------------------------------------------------------------------------------
├── 1.容器支持技术(用于支持基于容器的基础设施)有哪些?
├── 2.容器网络
├── 3.服务发现
├── 4.监控
├── 5.数据管理
├── 6.日志管理
├── 7.安全性
--------------------------------------------------------------------------------------
容器支持技术(用于支持基于容器的基础设施)有哪些?
  1. 容器网络。
  2. 服务发现。
  3. 监控。
  4. 数据管理。
  5. 日志管理。
  6. 安全性。
容器网络
  1. 容器的出现使网络拓扑变得更加动态和复杂。用户需要专门的解决方案来管理容器与容器、容器与其他实体之间的连通性和隔离性。
  2. docker network是Docker原生的网络解决方案。除此之外,我们还可以采用第三方开源解决方案。
服务发现
  1. 动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会根据host的资源使用情况在不同host中迁移,容器的IP和端口也会随之发生变化。在这种动态的环境下,必须要有一种机制让client能够知道如何访问容器提供的服务。这就是服务发现技术要完成的工作。
  2. 服务发现会保存容器集群中所有微服务最新的信息,比如IP和端口,并对外提供API,提供服务查询功能。etcd、consul和zookeeper是服务发现的典型解决方案。
监控
  1. 监控对于基础架构非常重要,而容器的动态特性对监控提出更多挑战。针对容器环境,已经涌现出很多监控工具和方案。
  2. docker ps/top/stats是Docker原生的命令行监控工具。除了命令行,Docker也提供了stats的API,用户可以通过HTTP请求获取容器的状态信息。
  3. sysdig、cAdvisor/Heapster和Weave Scope是其他开源的容器监控方案。
数据管理
  1. 容器经常会在不同的host之间迁移,如何保证持久化数据也能够动态迁移,是Rex-Ray这类数据管理工具提供的能力。
日志管理
  1. 日志为问题排除和事件管理提供了重要依据。docker logs是Docker原生的日志工具。
安全性
  1. 容器镜像可以存在安全漏洞,需要有工具能够对镜像进行扫描,发现潜在的漏洞。

系列文章

同系列其它文章

参考

Built with Hugo
主题 StackJimmy 设计