写点什么

每天 5 分钟吃透华为 18 级架构师推荐 252 页 Docker 容器技术入职华为云

作者:Java高工P7
  • 2021 年 11 月 12 日
  • 本文字数:2131 字

    阅读完需:约 7 分钟

(1)第一部分介绍容器技术生态环境。


第 1 章鸟瞰容器生态系统


一谈到容器,大家都会想到 Docker。


Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,大家也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。


大致来看,容器生态系统包含核心技术、平台技术和支持技术。



(2)第二部分是容器核心知识,包括架构、镜像、容器、网络和存储。


第 2 章容器核心知识概述


容器核心知识主要回答有关容器 What、Why 和 How 三个问题。其中 How 是重点,将从架构、镜像、容器、网络和存储几个方面进行讲解。



第 3 章 Docker 镜像


镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。


本章内容安排如下:首先通过研究几个典型的镜像,分析镜像的内部结构;然后学习如何构建自己的镜像;最后介绍怎样管理和分发镜像。



第 4 章 Docker 容器


上一章我们学习了如何构建 Docker 镜像,并通过镜像运行容器。本章将深入讨论容器:学习容器的各种操作、容器各种状态之间如何转换,以及实现容器的底层技术。



第 5 章 Docker 网络


本章讨论 Docker 网络。


我们会首先学习 Docker 提供的几种原生网络,以及如何创建自定义网络;然后探讨容器之间如何通信,以及容器与外界如


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


何交互。


Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,本章重点讨论前一种。对于更为复杂的多 host 容器网络,我们会在后面进阶技术章节单独讨论。



第 6 章 Docker 存储


本章讨论 Docker 存储。


Docker 为容器提供了两种存放数据的资源:


(1)由 storage driver 管理的镜像层和容器层。


(2) Data Volume。


我们会详细讨论它们的原理和特性。



(3)第三部分是容器进阶知识,包括多主机管理、跨主机网络方案、监控和日志管理。


第 7 章多主机管理


前面我们的实验环境中只有- -个 docker host,所有的容器都是运行在这一一个 host 上的。但在真正的环境中会有多个 host, 容器在这些 host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host.


对于这样一个 multi-host 环境,我们将如何高效地进行管理呢?


我们面临的第一个问题是:为所有的 host 安装和配置 Docker。



第 8 章容器网络


前面已经学习了 Docker 的几种网络方案: none、 host、bridge 和 joined 容器,它们解决了单个 Docker Host 内容器通信的问题。本章的重点则是讨论跨主机容器间通信的方案,跨主机网络方案包括: (1) docker 原生的 overlay 和 macvlan; (2) 第三方方案:常用的包括 flannel、 weave 和 calico.


docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题:如此众多的方案是如何与 docker 集成在一起的?


答案: libnetwork 以及 CNM。



第 9 章容器监控


当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要。


在本章中,我们将讨论几个目前比较常用的容器监控工具和方案,为大家构建自己的监控系统提供参考。


首先我们会讨论 Docker 自带的几个监控子命令: ps、 top 和 stats, 然后是几个功能更强的开源监控工具 sysdig、 Weave Scope. cAdvisor 和 Prometheus,最后我们会对这些不同的工具和方案做一个比较。



第 10 章日志管理


高效的监控和日志管理对保持生产系统持续稳定的运行以及排查问题至关重要。


在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要。考虑到容器短暂和不固定的生命周期,当我们需要 debug 问题时有些容器可能已经不存在了。因此,一套集中式的日志管理系统是生产环境中不可或缺的组成部分。


本章 我们将讨论监控容器的各种可用技术和方案,首先会介绍 Docker 自带的 logs 子命令,然后讨论 Docker 的 logging driver, 接下来通过实践学习几个已经广泛应用的日志管理方案: ELK、Fluentd 和 Graylog。



第 11 章数据管理


从业务数据的角度看,容器可以分为两类:无状态(stateless) 容器和有状态(tateful) 容谷。


无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一一次访问,比如提供静态页面的 Web 服务器。


有状态是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前请求的处理结果,最典型的就是数据库服务器。


简单来讲,状态(state) 就是数据,如果容器需要处理并存储数据,它就是有状态的,反之则无状态。


对于有状态的容器,如何保存数据呢?


前面在 Docker 存储章节我们学习到 data volume 可以存储容器的状态,不过当时讨论的 volume 其本质是 Docker 主机本地的目录。


本地目录就存在-一个隐患:如果 Docker Host 宕机了,如何恢复容器?


一个办法就是定期备份数据,但这种方案还是会丢失上次备份到宕机这段时间的数据。更好的方案是由专门的 storage provider 提供 volume,


Docker 从 provider 那里获取 volume 并挂载到容器。这样即使 Host 挂了,也可以立刻在其他可用 Host 上启动相同镜像的容器,同时直接挂载之前使用的 volume, 这样不会有数据丢失。


本章将详细讨论如何实现跨 Docker 主机管理 data volume。



这份【 每天 5 分钟玩转 Docker 容器技术】共有 252 页,已经整理打包好,需要完整版内容的朋友,可以转发此文关注小编??????


使用方法


====

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
每天5分钟吃透华为18级架构师推荐252页Docker容器技术入职华为云